当前位置: 首页 > wzjs >正文

11年始终专注营销型网站移动优化课主讲:夫唯老师

11年始终专注营销型网站,移动优化课主讲:夫唯老师,如何办理浙江省网站备案密码重置和备案注销,网站建设是什么岗位在软件开发领域,加壳保护是一种常见的安全手段,用于防止程序被逆向分析。然而,当程序崩溃时,开发人员需要定位原始错误位置,这就与加壳保护产生了天然的矛盾。本文将从加壳原理出发,为大家介绍兼容调试的解…

在软件开发领域,加壳保护是一种常见的安全手段,用于防止程序被逆向分析。然而,当程序崩溃时,开发人员需要定位原始错误位置,这就与加壳保护产生了天然的矛盾。本文将从加壳原理出发,为大家介绍兼容调试的解决方案。

一、加壳的基本功能

1. 加密 / 压缩

加壳最常见的功能就是对程序的整个代码段和数据段进行压缩或加密。这样做的目的是防止静态反编译,但在程序运行过程中,代码段和数据段是明文状态,所以不会对调试造成影响。

2. 混淆和虚拟化

与加密不同,混淆和虚拟化会对程序代码进行不可逆的变换。在程序运行时,不会存在原始的机器指令。如果程序在运行过程中崩溃的位置恰好是在混淆或虚拟化后的指令处,就无法直接定位到具体的代码位置。不过,混淆和虚拟化后的指令一般不会影响栈回溯,通过栈回溯可以得到上游函数的调用点,再配合调试信息就能获取基本的函数信息。

3. 反调试

反调试功能可以在程序运行过程中检测调试器的状态。如果对进程附加调试,会受到该功能的影响,但它并不影响内存转储(dump/core 文件的生成)。

二、程序的调试信息

为了方便排查运行时错误,操作系统和编译器都设计了相应的内存转储机制和对应的程序调试信息,不同操作系统的情况如下:

需要注意的是,程序对外发布时,应剥离调试信息,否则会存在安全性问题。将调试信息保留在开发环境中,便于后续的错误排除工作。

三、程序加壳后如何生成调试信息

1. Windows 程序处理方案

对于 Windows 程序(PE 格式),调试信息位于单独的 pdb 文件 中。加壳后,程序中的函数入口不会受到影响,pdb 文件仍然有效,无需再做额外处理。

2. Linux/Android 程序处理方案

对于 Linux/Android 程序(ELF 格式),调试信息位于 ELF Section 中,可以按照以下步骤处理:

#加壳保护,并保留调试信息
virboxprotector_con <file_path> <options..> --strip-dbginfo=0 -o <protected_file_with_dbginfo>#对加壳保护后带有调试信息的文件 strip
virboxprotector_con -strip <protected_file_with_dbginfo> -o <protected_file>

按照以上命令操作,可以得到 <protected_file> 用于发布,将 <protected_file_with_dbginfo> 保留用作调试。

3. macOS/iOS 程序处理方案

调试信息位于 dSYM 文件

如果 macOS 程序(Mach - O 格式)的调试信息位于 dSYM 文件中,需要将 dSYM 与原程序放在一起,并按如下方式处理:

# 直接对程序保护,在输出目录会生成新的 dSYM 文件。
virboxprotector_con <file_path> -o <protected_file>
调试信息位于符号表

若调试信息位于符号表,需按如下步骤处理:

#加壳保护,并保留调试信息
virboxprotector_con <file_path> <options...> --strip-dbginfo=0 -o <protected_file_with_dbginfo>#对加壳保护后带有调试信息的文件 strip
virboxprotector_con -strip <protected_file_with_dbginfo> -o <protected_file>#使用dsymutil 进一步生成 dSYM(可选)
dsymutil <protected_file_with_dbginfo> -o <dsym_file>

同样,将生成的 <protected_file> 用于发布, <protected_file_with_dbginfo>dSYM 文件 保留用作调试。

通过以上方法,开发人员可以在为程序提供加壳保护的同时,也能方便地进行调试工作,有效平衡了程序的安全性和可调试性。

http://www.dtcms.com/wzjs/69566.html

相关文章:

  • 做网站建设网络营销的八种方式
  • 泰安市建设职工培训中心电话网站做网站的费用
  • 泰安网站建设538sw在线生成个人网站app
  • 小米商城官方网站入口网络顾问
  • 网页设计与网站建设基础心得体会国内新闻最新5条
  • 扁平化 wordpress常州网站优化
  • 苹果网站用什么做的吗西安seo站内优化
  • 云南建网科技有限公司自建站seo如何做
  • 高端网站建设 源码如何做网页设计
  • 怎样优化网站案例java培训班
  • 网推所什么意思搜索引擎优化策略
  • 国内外网站开发有哪些技术电商
  • 西安做网站 好运网络进一步优化
  • 深圳罗湖高端网站建设抖音矩阵排名软件seo
  • 做家具网站福建省人民政府
  • 沈阳男科医院哪家好点儿常州百度搜索优化
  • 做自媒体网站开发seo投放营销
  • 英文网站建设580dw网页制作详细步骤
  • 免费流程图制作网站网络营销渠道策略
  • 赣州做网站的公司有哪家好网络策划与营销
  • 河南自助建站seo公司搜索引擎优化的简称是
  • 郑州市惠济区城乡建设局网站好口碑关键词优化
  • 阿里云企业网站怎么收费seo职位具体做什么
  • 门户网站建设招投标北京网站推广服务
  • win10系统做网站厦门seo关键词优化代运营
  • 权威网站优化价格搜索引擎seo推广
  • 网站开发售后服务协议策划营销
  • 途牛的旅游网站是谁做的盐城seo推广
  • 建e网站官网案例北京网站建设公司
  • 网站建设哪家信誉好seo教程视频