zyyujq 发表于 2022-5-19 16:40

易语言程序调试总结

本帖最后由 yujunqiang 于 2022-5-19 16:49 编辑

运行环境:WIN7
涉及工具:ExeinfoPe,x64dbg,UPXEasyGUI(含UPX 3.94)
教程类型:逆向限制,算法分析等
是否讲解思路和原理:是
以下为图文内容:

最近好玩,下载了一个试用版程序CopyU_2.1.470.216,经过ExeinfoPe测试是UPX包,使用UPXEasyGUI解包,再用ExeinfoPe测试,是易语言程序。







因为不爽界面太多的提示升级到PRO版的按钮,因此下载了易语言最新版本,分析比较原始代码编译后的程序。

第一次使用易语言编程工具,编写简单代码,分析控件代码规则。



通过分析,易语言控件都是中文命名,使用x64dbg的匹配特征搜索,很容易找到想修改的控件,部分关键控件的分析描述如下:

1、超级链接框HyperLinker,ASCII特征码:超级链接框,十六进制特征码: B3 AC BC B6 C1 B4 BD D3 BF F2 具体如下:
   B3 AC BC B6 C1 B4 BD D3 BF F2 32 00 00 00 00 00
   00 78 00 00 00 10 00 00 00 70 00 00 00 28 00 00
   00 00 00 00 00 00 00 04 00 00 00 00 00 04 00 00
   00 00 00 00 00 00 00 00 00 00 01
   特征码之后 32 为对象序号,特征码之后49字节为可视布尔值Bool01 改 00 即可将控件不可见。

2、标签Label,ASCII特征码:标签,十六进制特征码: B1 EA C7 A9 具体如下:
   B1 EA C7 A9 31 00 00 00 00 00 00 70 00 00 00 48
   00 00 00 80 00 00 00 28 00 00 00 00 00 00 00 00
   00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00
   00 00 00 00 01
   特征码之后 31 为对象序号,特征码之后49字节为可视布尔值Bool01 改 00 即可将控件不可见。

3、按钮Button,ASCII特征码:按钮,十六进制特征码:B0 B4 C5 A5 具体如下:
   B0 B4 C5 A5 31 00 00 00 00 00 00 70 00 00 00 90
   00 00 00 88 00 00 00 28 00 00 00 00 00 00 00 00
   00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00
   00 00 00 00 05
   特征码之后 31 为对象序号,特征码之后49字节为可视布尔值Bool05 改 04 即可将控件不可见。

4、单选框RadioBox,ASCII特征码:单选框,十六进制特征码:B5 A5 D1 A1 BF F2 具体如下:
   B5 A5 D1 A1 BF F2 31 00 00 00 00 00 00 78 00 00
   00 C8 00 00 00 68 00 00 00 18 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00
   00 00 00 00 00 00 05
   特征码之后 31 为对象序号,特征码之后49字节为可视布尔值Bool05 改 04 即可将控件不可见。

5、选择框CheckBox,ASCII特征码:选择框,十六进制特征码:D1 A1 D4 F1 BF F2 具体如下:
   D1 A1 D4 F1 BF F2 31 00 00 00 00 00 00 78 00 00
   00 18 00 00 00 80 00 00 00 28 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00
   00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00
   00 00 00 00 00 FF 01 00 00 00 00 00 00 00 00 00
   特征码之后 31 为对象序号,特征码之后49字节为可视布尔值Bool05 改 04 即可将控件不可见。FF 01 改为 FF 00 为默认不选择

6、编辑框EditBox,ASCII特征码:编辑框,十六进制特征码:B1 E0 BC AD BF F2 具体如下:
   B1 E0 BC AD BF F2 31 00 00 00 00 00 00 78 00 00
   00 18 00 00 00 78 00 00 00 48 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00
   00 00 00 00 00 00 05
   特征码之后 31 为对象序号,特征码之后49字节为可视布尔值Bool05 改 04 即可将控件不可见。

7、菜单menu,ASCII特征码:菜单,十六进制特征码:B2 CB B5 A5 具体如下:
   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   B2 CB B5 A5 31 00 FF FF FF FF 00 00 00 00 00 00
   特征码之后 31 为对象序号,特征码之前 4 字节为可视布尔值Bool00 改 01 即可将控件不可见。

通过以上分析后的方法,使用x64dbg的匹配特征搜索 CopyU_2.1.470.216 SW 试用版本的特征信息,修改程序为美观版本,但没有逆向为PRO版。
禁止显示所有升级为PRO的标签和菜单,软件好看多了!
{:6_225:}

看上去有点象专业版


示例:x64dbg 禁止显示菜单------> 升级到PRO...
匹配特征搜索菜单,发现有字符:帮助、升级到PRO...
或者匹配特征搜索升级到PRO...
因为菜单与升级到PRO...是连续的菜单,因此这些字符在一起,可以识别此处为菜单代码处,
直接在 C9 FD BC B6 B5 BD 50 52 4F B0 E6 2E 2E 2E 前 4 字节 00 处,双击修改为 01,即可禁止显示此菜单:



禁止关于对话框里的升级标签显示:
匹配特征搜索标签,找到标签后含“您当前使用的是SW版本(共享版),升级到PRO版“的地方。将特征字符后第 49 字节 01 改为 00 ,即可禁止显示此标签按钮。如下图:




x64dbg的补丁.1337文件和原程序和修改程序附后:









WOoJhZzI4596 发表于 2022-5-19 16:40

谢谢分享

aAsryTlc 发表于 2022-5-19 16:42

感谢楼主

vthcFOTW02 发表于 2022-5-19 16:44

谢谢分享

GRdlFyoXp 发表于 2022-5-19 16:52

楼主好强啊!学习了!

pUcvSEeV58 发表于 2022-5-19 16:58

感谢楼主的热心分享

JaKFGXc1 发表于 2022-5-19 17:00

感谢楼主

AjI9634 发表于 2022-5-19 17:04

感谢楼主

EPdkrKb710 发表于 2022-5-19 17:05

谢谢分享

MUt309 发表于 2022-5-19 17:27

谢谢分享
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 易语言程序调试总结