-
-
[分享]修复IAT_Execryptor脚本
-
发表于:
2007-4-13 17:05
7887
-
在看雪论坛下载了ASProtect.2.3.6.26.Modified汉化版,光看了一个PE节,用壳用PEid扫了一下,不知是什么壳,可能是PEid的Sign库太老了,我OD原来是启动着的,后来运行了这家伙,可恶被强暴了,激动着要用OD载入调试之,就单步异常,又不是入口,很快又被踢开了,原来有Tls小刀!没接触过 execryptor (后来种种表现有点象simonzh2000兄文章提的execryptor),Hide了OD,太多单步了,糊涂地死了,又发现修改XXXXX
mov dword ptr [ecx], 10001
mov dword ptr [ecx], 10013
将其所有NOP之,保留 Int3 异常项,一路shit,Code解压之,待VM(后来才知叫VM)解开,同样NOP之, Code节F2内存访问断点,shit了几下中断,来到真正入口。看了一下是Delphi,再F4到第一个API调用,盲的都知道是GetModuleHandleA,返回处下了断点跟之,死得难看,几次跟踪后,发现IAT有这样的处理:1.未到OEP入口时IAT存放的是固定的VM地址和模块序号,序号的将会自动解出API替换之;2.存入VM地址的,有的会运行时解之替换,有时雷打不动。所以要在OEP处解之,必定要用VM解之!
于是在论坛上找了些文章和脚本,抄起脚本器调试之,发现没有脚本可顺利运行到结束,Crash之或没什么反映,看来看去还是 okdodo 的脚本处理得还可以(呵呵,加壳者弄的水印),便找起Bug来,发现扫描判断有些不保险的安排!改了改它,便发现可以顺利地运行,报告可观点!
Dump后修复OEP、IAT和Tls,kqunredf节名改回.idata,Cut掉壳的3节节省了185000h,Cut掉空的reloc节少了12000h,重新调整了资源节又少了1000h,改回对节数,保存运行之OK了!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)