最近一个前同事 Y君 面临一个问题: 某erp龙头企业〇迅 屏蔽了其公司的某某插件导致收入骤减,
于是尝试咨询笔者使用 ExStudPE 破解其产品中的相应模块。
过程本身很简单,考虑到真正熟悉该工具的开发者比较少,所以简单记录一下,聊以作为一个教程吧。
至于有没有《案例随笔(2)》之类的,姑妄言之,姑妄观之。
当然,用于破解的工具软件有很多,比如广为人知的OD,IDA之类的。乃至 ExStudPE,也算是各有优劣,在此不言。
先简单介绍下 ExStudPE:
----------------------------------------------------------------------------------------------
ExStudPE Visual Tools 是一个扩展StudPE、LordPE等软件的用于PE(32位)、PE+(64位)、NE、Elf(32位)、Coff、Lib格式二进制可执行目标文件(*.exe、*.dll、*.ocx、*.so、*.lib、*.obj、*.exp等)的分析、调试、十六进制编辑工具。
利用此工具可以方便的查找给定PE文件的一些常用的信息,如导入表、导出表、重定位表、资源、消息表、版本信息、PE附加数据等等。同时可以方便地实现给定程序代码的反汇编功能,同时提供了快速定位的有效解决方案。同时本程序也具有十六进制编辑器的基本功能。另外,本程序集成了对于目标文件的简单的调试功能(包括虚拟机调试与实体机调试),使用方便。特别适合于专业的PE分析研发人员使用。
不仅如此,新版本还增加了许多其他附加特性及插件(比如二进制资源探测插件、编译器可识别插件、二进制依赖项分析提取插件、符号名称反修饰插件、二进制数据格式化插件等等),使用最新版本将会获得更好的操作体验。
下载地址:
https://download.csdn.net/download/tan_kaishuai/11456728
https://github.com/tankaishuai/ExStudPE_Visual_Tools
----------------------------------------------------------------------------------------------
书接上文。Y君研究 〇迅 的某关键模块导出接口: hasInterference() ,欲使其直接返回 false,以绕过主程序检查。
首先用 ExStudPE 打开模块:因为 hasInterference 是一个导出函数,因此直接展开导入表树形节点定位到即可:
双击 hasInterference 节点,定位到函数导出地址处:
如图,函数的 RVA地址即是:00008440。右键 -> 【跳转至选取 RVA】:
然后点击【反汇编】按钮:
此时,即显示出了 hasInterference() 函数的内容及反汇编代码。如图所示↑。
研究汇编代码,欲使该接口总是返回 false,可修改红框两处位置分别为:
74 0C je 00008477h
33 C0 xor eax, eax
例如,点击 je 00008479h, 选择菜单:【选择】->【修改文件数据】:
输入 74 0C,点击确定,完成修改。
可以重新选取函数块,重新进行反汇编,如下:
可见已经正确修改完成。
最后选择:【文件】(或者右键)->【保存全部数据】,即可将修改的模块存盘。
当然,最后 Y君 发现仅修改该接口并不能达到其最终目的,〇迅 有其他保护手段,待继续研究,在此不谈。
是以,此文仅为抛砖引玉之用,更深入的用法建议还是查看帮助文档或者亲自探索吧。^_^)'