360060316 发表于 2011-1-27 19:39:21

Autoit 反编译

CTRL+S 查找命令序列:
============================================
push eax
ANY
test eax,eax
pop ecx
pop ecx
ANY
push ebx
push ebx
============================================

找到后显示为:
0043964E      |.      50                     |push eax
0043964F      |.      E8 ACFC0000            |call AutoIt3A.00449300
00439654      |.      85C0                     |test eax,eax
00439656      |.      59                     |pop ecx
00439657      |.      59                     |pop ecx
00439658      |.      74 48                  |je short AutoIt3A.004396A2
0043965A      |.      53                     |push ebx
0043965B      |.      53                     |push ebx

在push eax上面按F2下断,F9运行,中断.
如果EAX显示:
ASCII ">AUTOIT UNICODE SCRIPT<"
就说明脚本是UNICODE编码的.
如果显示:
ASCII ">AUTOIT SCRIPT<"
就说明脚本是ANSI编码的.
取消断点.

CTRL+S 查找命令序列:
============================================
lea eax,dword ptr ss:

lea eax,dword ptr ss:
push eax
mov ecx,ebx
ANY
test al,al
ANY
lea eax,dword ptr ss:

lea eax,dword ptr ss:
============================================

找到后在第二个lea eax,dword ptr ss:上面下断点(按F2)

按F9一次,中断,F8一次,寄存器窗口出现脚本?取消刚才设置的断点(F2)
=====================================================
004069D3      |.      E8 D5FDFFFF            |call AutoIt3A.004067AD
004069D8      |.      84C0                     |test al,al
004069DA      |.      0F84 CE000000            |je AutoIt3A.00406AAE
004069E0      |.      8D85 E8EFFFFF            |lea eax,dword ptr ss:            ;      断在这里
004069E6      |.      E8 ECF7FFFF            |call AutoIt3A.004061D7
004069EB      |.      84C0                     |test al,al
=====================================================
点击刚才lea eax,dword ptr ss:上面那个je AutoIt3A.00406AAE,看它跑哪里去.

跑到了这里:
=====================================================
00406AAE      |> \FF75 0C                  push dword ptr ss:
=====================================================

在上面的地址下断.F9运行一次,再次中断.
现在脚本解压缩完了.
看看寄存器EDX的值(如果EDX未出现脚本,请使用下面的那个方法):
EAX 0012F700 ASCII "U3TOOL.exe"
ECX 0046E2D8 AutoIt3A.0046E2D8
EDX 00C10048 ASCII 3B," <AUT2EXE VERSION: 3.2.5.1>
在EDX那一行上面点击右键>

;在数据窗口跟随.
再看左下方内存窗口.



在内存窗口右键>备份>保存数据到文件(扩展名修改为AU3).
用scite打开这个保存的au3脚本,删除无用的数据.OK,脚本已经反编译完成了.

8722073 发表于 2011-1-27 22:20:44

可惜暂时看不懂

bemylife 发表于 2011-1-27 22:23:49

孩子,你的代码过时了

iori76952652 发表于 2011-1-27 23:13:33

真的吗?

学习啦~

微雨湿黄昏 发表于 2011-1-27 23:42:58

回头有空再看看

happytc 发表于 2011-1-28 00:58:46

这个方法早就不行了,只能对很老的版本有效,另外:转帖要注明,楼主!

steppe_w0lf 发表于 2011-1-28 09:23:05

正编译还没学好呢!!

曼菲士 发表于 2011-1-28 11:39:27

楼主是没效果了才发出来,有效果的收着,哈哈哈

a00a00 发表于 2011-2-11 14:54:15

我还以为是可以反编译最新版呢!

uni_wl 发表于 2011-2-12 14:30:17

貌似没这么简单吧?

fp6 发表于 2011-2-15 03:08:51

代码过时了

881966 发表于 2018-11-13 15:43:21

学习学习,谢谢分享

zmkkk 发表于 2020-2-13 21:22:12

不明真相的围观群众

.Simba 发表于 2020-2-13 21:38:39

自己写多好,编译别人的干嘛!:face (31):
页: [1]
查看完整版本: Autoit 反编译