tElock+ASProtect脱壳+解除自校验——小李加密 V7.0 Build 0110
下载页面: http://www.skycn.com/soft/10300.html
软件大小: 1291 KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 加密工具
应用平台: Win9x/NT/2000/XP
加入时间: 2004-01-10 11:25:45
下载次数: 45930
推荐等级: ****
【软件简介】:1.未注册版本,可加密多个文件,不能加密文件夹。2.注册一份,另外赠送4个注册码。3.纯绿色软件,无需安装。4.绝对的傻瓜式软件,根本不用学习。5.可加密任意大小、任何类型的文件。6.可同时加密多个文件、文件夹;可同时解密多个文件;可同时彻底删除多个文件、文件夹。7.采用国际标准加密算法(RSA和MD5)。8.支持长达128位的密码。9.支持普通、寄生和自解密三种加密方式。10.支持从资源管理器和我的电脑到软件的文件、文件夹拖放。
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【调试环境】:WinXP、Ollydbg、PEiD、LordPE、ImportREC
—————————————————————————————————
【脱壳过程】:
一、脱壳
有兄弟问多层壳的脱法。hying老大说过:N层壳=1层壳。偶觉得如果搭配得当,猛壳+猛壳皆发挥猛壳的特长或许会加强壳的保护性,避开脱壳机的自动脱壳。但是某些多层加壳却适得其反:如 猛壳+UPX等压缩壳 就不太妙了,只要避开猛壳的反跟踪部分,按UPX的脱法就简单搞定了。所以:偶觉得N层壳==最后1层壳。也就是说脱多层壳:避开外面几层壳的反跟踪部分,按最后1层壳的脱法来做就行了。
朋友让看看 小李加密 V7.0 Build 0110 ,恰好这个是 tElock 0.98b1+ASProtect V1.2 两层壳,都是旧壳,索性以这个为例子来简单演示一下。没看破解,作者不要担心。
————————————————————————
老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。忽略除了“内存访问异常”之外的所有其他异常选项。因为这个东东的最后1层壳是ASProtect,所以不管外面的tElock壳,直接按ASProtect的脱壳方法来操作就行了。
1、寻找OEP
0055FBD6 E9 25E4FFFF jmp EnMain.0055E000//进入OD后停在这!
F9运行,程序会中断在异常处,Shift+F9通过异常
0055EBA6 CD 68 int 68//第1次异常
00AC335C 3100 xor dword ptr ds:[eax],eax//第2次异常
…… …… 省 略 …… ……
00AC2CD1 3100 xor dword ptr ds:[eax],eax//最后1次ASProtect典型异常
00AC2CD3 64:8F05 00000000 pop dword ptr fs:[0]
00AC2CDA 58 pop eax
00AC2CDB 833D 7C6DAC00 00 cmp dword ptr ds:[AC6D7C],0
00AC2CE2 74 14 je short 00AC2CF8
00AC2CE4 6A 0C push 0C
00AC2CE6 B9 7C6DAC00 mov ecx,0AC6D7C
00AC2CEB 8D45 F8 lea eax,dword ptr ss:[ebp-8]
00AC2CEE BA 04000000 mov edx,4
00AC2CF3 E8 54E1FFFF call 00AC0E4C
00AC2CF8 FF75 FC push dword ptr ss:[ebp-4]
00AC2CFB FF75 F8 push dword ptr ss:[ebp-8]
00AC2CFE 8B45 F4 mov eax,dword ptr ss:[ebp-C]
00AC2D01 8338 00 cmp dword ptr ds:[eax],0
00AC2D04 74 02 je short 00AC2D08
00AC2D06 FF30 push dword ptr ds:[eax]
00AC2D08 FF75 F0 push dword ptr ss:[ebp-10]
00AC2D0B FF75 EC push dword ptr ss:[ebp-14]
00AC2D0E C3 retn//直接在这下断! Shift+F9断在这!返回到 00AD53EC
00AD53EC E9 EE070000 jmp 00AD5BDF//直接F4到下1行
00AD577C 0F85 17000000 jnz 00AD5799
00AD5782 66:BB A020 mov bx,20A0
00AD5786 E9 25000000 jmp 00AD57B0//此处下断,F9断在这,跳出循环
00AD579C E9 58FFFFFF jmp 00AD56F9//循环
00AD5889 0F85 0D000000 jnz 00AD589C
00AD588F 8AF9 mov bh,cl
00AD5891 E9 19000000 jmp 00AD58AF//此处下断,F9断在这,跳出循环
00AD58A4 E9 6AFFFFFF jmp 00AD5813//循环
00AD5960 0F85 14000000 jnz 00AD597A
00AD5966 BA CC89C63B mov edx,3BC689CC
00AD596B E9 1B000000 jmp 00AD598B//此处下断,F9断在这,跳出循环
00AD597C E9 6DFFFFFF jmp 00AD58EE//循环
00AD5966 BA CC89C63B mov edx,3BC689CC
00AD5A21 0F85 16000000 jnz 00AD5A3D
00AD5A27 E9 24000000 jmp 00AD5A50//此处下断,F9断在这,跳出循环
00AD5A40 E9 92FFFFFF jmp 00AD59D7//循环
00AD5BCC 8BD3 mov edx,ebx
00AD5BCE 5B pop ebx
00AD5BCF 58 pop eax
00AD5BD0 05 49E2A32C add eax,2CA3E249
00AD5BD5 5C pop esp
00AD5BD6 03C3 add eax,ebx//EAX=000014A0+00400000=004014A0 这就是OEP值
00AD5BD8 894424 1C mov dword ptr ss:[esp+1C],eax
00AD5BDC 61 popad
00AD5BDD FFE0 jmp eax ; EnMain.004014A0//飞向光明之巅!
————————————————————————
2、DUMP
004014A0 EB 10 jmp short EnMain.004014B2//在这儿用LordPE纠正ImageSize后完全DUMP这个进程
004014A2 66:623A bound di,dword ptr ds:[edx]
004014A5 43 inc ebx
004014A6 2B2B sub ebp,dword ptr ds:[ebx]
004014A8 48 dec eax
004014A9 4F dec edi
004014AA 4F dec edi
004014AB 4B dec ebx
004014AC 90 nop
004014AD E9 98904C00 jmp 008CA54A
004014B2 A1 8B904C00 mov eax,dword ptr ds:[4C908B]
004014B7 C1E0 02 shl eax,2
004014BA A3 8F904C00 mov dword ptr ds:[4C908F],eax
004014BF 52 push edx
004014C0 6A 00 push 0
004014C2 E8 956A0C00 call EnMain.004C7F5C
———————————————————————
3、修复输入表
运行ImportREC,选择这个进程。把OEP改为000014A0,RVA=000EC334, Size=000011FC, 点“Get Import”,用“追踪层次1”和“ASProtect 1.3 calculated imports”插件全部修复无效函数。FixDump。
OK,至此脱壳完成。tElock 0.98b1+ASProtect V1.2 两层壳只是用了脱最后ASProtect壳的方法。当然tElock 0.98b1和ASProtect V1.2都算是“古老”的壳了,相信大家手脱都没问题的,偶只是借这个例子简单演示一下罢了。
—————————————————————————————————
二、解除自校验
但是运行脱壳后的程序界面一闪就自动退出了。这并不是脱壳的问题,而是程序有自校验!相对于加2层壳来说,这个东东的自校验做的要好得多。偶很菜,脱壳用了20分钟,看这个自校验却花了3个小时。
只说修改了,寻找的过程很是烦人, 且很大程度上偶是不断试验而凑巧碰到的罢了。
————————————————————————
1、00465782处
00465782 80B8 9C000000 00 cmp byte ptr ds:[eax+9C],0
00465789 74 0F je short dumped_.0046579A
改为:
00465782 C680 9C000000 00 mov byte ptr ds:[eax+9C],0
00465789 EB 0F jmp short dumped_.0046579A
————————————————————————
2、00468AE7处
00468AE7 8078 5B 00 cmp byte ptr ds:[eax+5B],0
改为:
00468AE7 C640 5B 01 mov byte ptr ds:[eax+5B],1
修改以上2处后脱壳后的程序可以正常运行了。没看是否还有其他暗桩了。
前几天做的,整理了一下放了上来。没有什么意义的笔记。
—————————————————————————————————
, _/
/| _.-~/ _ , 青春都一饷
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 换了破解轻狂
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊——fly [OCN][FCG][NUKE][DCM]
2004-01-12 15:15