地址:https://www.52pojie.cn/thread-1928246-1-1.html 各位大佬,这个帖子的推荐回答几张图片打不开,麻烦可以查看完整图片的大佬转为pdf发给我,谢谢! 大佬, 帖子
AHK (Auto Hotkey) 的程序要用想办法提取源码,而不是在调试器折腾。 PE32 操作系统: Windows(2000)[I386, 32 位, GUI] 链接程序: Microsoft Linker(10.00.40219) 编译器: Microsoft Visual C/C++(16.00.40219)[LTCG/C++] 语言: C/C++ 工具: Visual Studio(2010) 打包工具: UPX[modified] 格式: Compiled AutoHotKey(1.0.4) 因为你的附件无法正确运行,我网上找了个 1.0.4 版本的。 然后随手找了几个反编译 ahk 的自动化工具,看起来都不能用的样子,只好手动看一下。 带壳运行,断 FindResourceW 或下方可以看到的其它 API,搜索字符串引用,找 >AUTOHOTKEY SCRIPT: 004188E3 | 56 | push esi | 004188E4 | 6A 0A | push A | 004188E6 | 68 FC964A00 | push _1.0.4.4A96FC | 4A96FC:L">AUTOHOTKEY SCRIPT] | 00418908 | 8BF0 | mov esi,eax | 0041890A | 85F6 | test esi,esi | 0041890C | 74 7C | je _1.0.4.41898A | 0041890E | 56 | push esi | 0041890F | 6A 00 | push 0 | 00418911 | FF15 14214A00 | call dword ptr ds:[] | 00418917 | 894424 0C | mov dword ptr ss:[esp+C],eax | 0041891B | 85C0 | test eax,eax | 0041891D | 74 6B | je _1.0.4.41898A | 0041891F | 56 | push esi | 00418920 | 6A 00 | push 0 | 00418922 | FF15 18214A00 | call dword ptr ds:[] | 00418928 | 85C0 | test eax,eax | 0041892A | 74 5E | je _1.0.4.41898A | 0041892C | 50 | push eax | 0041892D | FF15 1C214A00 | call dword ptr ds:[] | 返回值 EAX 就是脚本地址 00418933 | 894424 08 | mov dword ptr ss:[esp+8],eax | ESP+8 是地址,ESP+C 是大小 找到下面的 LockResource 调用,在这里断下。 EAX(以及之后赋值的 ESP+8)储存的是数据地址ESP+C 储存的是数据大小 将这块内存提取出来(写脚本也好,用 HxD 等工具也好),保存到文件就是明文的代码了: 把 1L 的可执行文件放到主程序目录下执行后可以正常执行的样子,操作方法是一样的。 不过这个 1.2.6 试用版没有 > AUTOHOTKEY SCRIPT 这个标识符了,对 LockResource 下断点就能马上到了。 虽然代码的开头部分有点毛病,但后面的内容看起来未受影响;如果编辑器无法正常打开,将打开时的编码切换到 UTF-8 即可。 剩下的就是跟着代码研究它的算法就行了。脚本将多余的空格剔除掉了,找个格式化代码的插件处理下就好。 机器码 = 00000000000000000000000000000000 序列号 (1.2.6 试用版) = YzQ1-NDk5-ZWFl-MDk5-NmZh-YTk5-ZDUz-Yjk5-YzkwZDExNjAwOTIyYTU0NTMzOWU3NzEx 序列号 (1.0.4 未知版) = ZDc3-ZTk5-Nzlk-Nzk5-MTJh-YTk5-NzBm-Nzk5-YjA1NTExZDBiMjIyODZkMzMzNDY0NTEx 转载自https://www.52pojie.cn/forum.php?mod=redirect&goto=findpost&ptid=1928246&pid=50489314,已修复图像问题。 @爱飞的猫 有空的时候换一下链接,百度图床的挂掉了 分可以直接加给原作者(不用采纳我),仅作转载