易语言程序调试总结
本帖最后由 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文件和原程序和修改程序附后:
谢谢分享 感谢楼主 谢谢分享 楼主好强啊!学习了! 感谢楼主的热心分享 感谢楼主 感谢楼主 谢谢分享 谢谢分享