RSS
热门关键字: au3 gui wmi ie.a msi ie.au3
当前位置:AutoIt软件专题站 > AU3相关 > 正文

关于AUTOIT的反向编译

来源: 作者:thesnow 时间:08年11月20日 浏览:

对于3.2.5.2+以前的版本编译的代码可以使用,对之后的新版将无法反编译出源代码.
教程目的:学习他人脚本思想.提醒大家注意如果要保证脚本的安全,建议使用代码迷惑.(虽然也能反)

3.1.1.0+的autoit的反向编译(包括3.2.5.1最新版本).
所需工具: OLLYDBG,ULTRAEDIT.AUTOIT中的autoit3a.exe

请自己确定这个程序是不是autoit编写的.
OD打开 autoit3a.exe (位于已经安装的autoit的路径,汉化版本默认为d:\autoit3\)
参数填 那个前面确认是autoit3程序的EXE路径,A3X也可以.


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:[ebp-1018]
push eax
mov ecx,ebx
ANY
test al,al
ANY
lea eax,dword ptr ss:[ebp-1018]

============================================

找到后在第二个lea eax,dword ptr ss:[ebp-1018]上面下断点(按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:[ebp-1018]            ;        断在这里
004069E6        |.        E8 ECF7FFFF              |call AutoIt3A.004061D7
004069EB        |.        84C0                     |test al,al
=====================================================
点击刚才lea eax,dword ptr ss:[ebp-1018]上面那个je AutoIt3A.00406AAE,看它跑哪里去.

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

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

最新评论
昵称
评论內容