- UID
- 3908
注册时间2005-10-22
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
【破文标题】tElock 0.90 -> tE!,dump输入表+修复
【破文作者】Iceman
【作者邮箱】[email protected]
【破解工具】OD、PEID、LORDPE、PEDITOR
【破解平台】XP sp2
【软件名称】BlueSeed
------------------------------------------------------------------------
不久前,有个网友,发了个软件给我脱壳,tElock 0.90 -> tE!的,找了些文章看后,有些问题没搞懂,毕竟大侠们的文章,不适合初学者,步骤太简化了。在些,对写《用OLLYDBG快速脱tElock V0.98的壳》的作者,表示感谢。我写的,基本是按作者原文,只是有些地方,写得详细点。
停了好几天,今天无聊,又重新试了下,结果,搞定了。初次接触这些东西,觉得比较有意义,就写下来。比较适合菜鸟们看。
这个过程,是把未加密的IAT,先dump出来,粘贴到脱壳后程序,再做一些修复
--------------------------------------
OD,忽略“INT3中断”和“单步中断”异常
SHIFT+F9运行,按了3次后,程序运行。CTRL+F2,重新开始
SHIFT+F9运行2次后,停下来。CTRL+F,搜索“and dword ptr ds:[esi+C],0”
004BCC14 ^\EB 88 jmp short BlueSeed.004BCB9E
004BCC16 8B95 AEAF4000 mov edx,ss:[ebp+40AFAE]
004BCC1C 8BB5 9EAF4000 mov esi,ss:[ebp+40AF9E]
004BCC22 85F6 test esi,esi //下断点,ESI值为IAT的位置(未加密)
004BCC24 0F84 9D030000 je BlueSeed.004BCFC7
004BCC2A 03F2 add esi,edx
004BCC2C 83A5 9AB04000 0>and dword ptr ss:[ebp+40B09A],0
004BCC33 8B46 0C mov eax,ds:[esi+C]
004BCC36 8366 0C 00 and dword ptr ds:[esi+C],0 //停在这
004BCC3A 85C0 test eax,eax
004BCC3C 0F84 85030000 je BlueSeed.004BCFC7
搜索后,往上看,在004BCC22处下断点
SHIFT+F9,停在004BCC22处,看ESI值,此时为95000
在命令行中输入“D 495000”,在数据窗口中,看到未加密的IAT,开始处为495000,结束处为497FF8
IAT大小为:497FF8-495000=2FF8
打开LordPE,部分转储。地址:495000 大小:2FF8 。保存为dumped.dmp
接下来内存断点,直到OEP。OEP为8D124
内存映射,项目 19
地址=00401000
大小=0008D000 (577536.)
属主=BlueSeed 00400000
区段=CODE
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
LordPE,完全转储。dumped.exe
把DUMP出来的IAT表,粘到dumped.exe的相应位置。
PEID,打开dumped.exe,查看区段“.idata”的R.Offset(原始偏移量),R.Offset为95000(IAT的开始处)
用WINHEX,复制dump出来的IAT,替换掉dumped.exe的IAT,也就是替换掉偏移量为9500-97FF7、大小为2FF7加密过的IAT。
替换后,保存。
最后,用PEditor修改OEP,重建程序
把入口点改为8D124。
查看IAT的原始偏移量是否为95000,如果不是,就改为95000。
重建程序,选择重建输入表。
完成后,运行程序,程序正常。PEID查为“Borland Delphi 6.0 - 7.0”
这个软件是一个捆绑机,软件我就不上传了。想试下的朋友,找个tElock 0.90 -> tE!的试下。
==============================================
下面是在网上看到的,用在这个软件中,找不到“MOV DWORD PTR SS:[ESP+1C],EDX”
telock0.9-1.0 IAT加密 还是有规律可循的
只要找到这些就可以解决
MOV DWORD PTR SS:[ESP+1C],EDX
POPAD
MOV BYTE PTR SS:[EBP+*******],0
JE SHORT *********////只要这里改成JMP就可以得到完整的IAT,并不需要用ImportREC修复
------------------------------------------------------------------------
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢! |
|