【破解作者】 stasi[DCM][BCG][DFCG][FCG][OCN][CZG][D.4s]
【作者邮箱】 stasi@163.com
【作者主页】 www.icehack.org/stasi
【使用工具】 od
【破解平台】 Win9x/NT/2000/XP
【软件名称】 Akala EXE Lock 3.20
【下载地址】 http://breezer.ys168.com
【软件简介】 Akala EXE Lock 软件将 EXE 执行文件加锁,这样一来就只有知道密码的人才可以打开运行,
达到安全管理的目的。目前在窗口操作系统下所执行的各类软件之主要执行文件,大多都是
以 .exe 的执行档案形式存在。因此使用 Akala EXE Lock 软件,就能帮应用程序加上密码
锁,确保应用软件使用上的安全。Akala EXE Lock 的使用方式也很简单,你只要指定应用
程序执行文件的位置,然后输入密码就可以了。
【软件大小】 500k
【加壳方式】 Akala EXE Lock
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
早上在xy2000的地盘上淘宝:)
www.chinabcg.com.cn的论坛里的版大多还没整理好,只有工具版比较兴旺,看了个帖,便到了个::天骄牧场
::的地方,吸引眼球的是个“最华丽的加壳软件”Akala EXE Lock 以前没听说过,所以想看看穿的是什么名
牌:)
加了个NOTEPAD.EXE,是aspack+密码验证的密码壳
00480001 > 60 pushad 是aspack的外壳,压缩用
00480002 E8 03000000 call NOTEPAD.0048000A
00480007 - E9 EB045D45 jmp 45A504F7
0048000C 55 push ebp
0048000D C3 retn
0048000E E8 01000000 call NOTEPAD.00480014
004803A7 0BC9 or ecx,ecx
004803A9 8985 A8030000 mov dword ptr ss:[ebp+3A8],eax
004803AF 61 popad
004803B0 75 08 jnz short NOTEPAD.004803BA
004803B2 B8 01000000 mov eax,1
004803B7 C2 0C00 retn 0C
004803BA 68 E0444600 push NOTEPAD.004644E0
004803BF C3 retn 返回到加密段
004644E0 55 push ebp 不急着把壳脱掉的,下面有原因的
004644E1 8BEC mov ebp,esp
004644E3 83C4 F0 add esp,-10
004644E6 B8 D8414600 mov eax,NOTEPAD.004641D8
004644EB E8 B01CFAFF call NOTEPAD.004061A0
004644F0 A1 28634600 mov eax,dword ptr ds:[466328]
004644F5 8B00 mov eax,dword ptr ds:[eax]
00463DE6 8BC0 mov eax,eax 通过提示字符找这里
00463DE8 55 push ebp
00463DE9 8BEC mov ebp,esp
00463DEB 33C9 xor ecx,ecx
00463DED 51 push ecx
00463DEE 51 push ecx
00463DEF 51 push ecx
00463DF0 51 push ecx
00463DF1 51 push ecx
00463DF2 51 push ecx
00463DF3 53 push ebx
00463DF4 56 push esi
00463DF5 8BF0 mov esi,eax
00463DF7 33C0 xor eax,eax
00463DF9 55 push ebp
00463DFA 68 4D3F4600 push NOTEPAD.00463F4D
00463DFF 64:FF30 push dword ptr fs:[eax]
00463E02 64:8920 mov dword ptr fs:[eax],esp
00463E05 8D86 48030000 lea eax,dword ptr ds:[esi+348]
00463E0B BA 5C3F4600 mov edx,NOTEPAD.00463F5C ; ASCII 10,"...FILE..LOCK..."
00463E10 33C9 xor ecx,ecx
00463E12 8A08 mov cl,byte ptr ds:[eax]
00463E14 41 inc ecx
00463E15 E8 56EEF9FF call NOTEPAD.00402C70 大小效验,事先脱壳这里就不过
00463E1A 74 15 je short NOTEPAD.00463E31
00463E1C BA 783F4600 mov edx,NOTEPAD.00463F78 ; ASCII "Encryption Flag Error!"
00463E21 8B86 28030000 mov eax,dword ptr ds:[esi+328]
00463E27 E8 9428FDFF call NOTEPAD.004366C0
00463E2C E9 F1000000 jmp NOTEPAD.00463F22
00463E31 8D45 F8 lea eax,dword ptr ss:[ebp-8]
00463E34 8D96 59030000 lea edx,dword ptr ds:[esi+359]
00463E3A E8 6104FAFF call NOTEPAD.004042A0
00463E3F 8B45 F8 mov eax,dword ptr ss:[ebp-8]
00463E42 8D55 FC lea edx,dword ptr ss:[ebp-4]
00463E45 E8 0E9DFFFF call NOTEPAD.0045DB58
00463E4A 8B45 FC mov eax,dword ptr ss:[ebp-4]
00463E4D 50 push eax
00463E4E 8D55 F4 lea edx,dword ptr ss:[ebp-C]
00463E51 8B86 2C030000 mov eax,dword ptr ds:[esi+32C]
00463E57 E8 3428FDFF call NOTEPAD.00436690
00463E5C 8B55 F4 mov edx,dword ptr ss:[ebp-C]
00463E5F 58 pop eax
00463E60 E8 E305FAFF call NOTEPAD.00404448 密码验证
00463E65 74 6D je short NOTEPAD.00463ED4
00463E67 FE86 40030000 inc byte ptr ds:[esi+340]
00463E6D 8A9E 40030000 mov bl,byte ptr ds:[esi+340]
00463E73 80FB 03 cmp bl,3 有三次密码验证
00463E76 76 0C jbe short NOTEPAD.00463E84
00463E78 8BC6 mov eax,esi
00463E7A E8 85EAFEFF call NOTEPAD.00452904
00463E7F E9 9E000000 jmp NOTEPAD.00463F22
00463E84 8D45 F0 lea eax,dword ptr ss:[ebp-10]
00463E87 50 push eax
00463E88 33C0 xor eax,eax
00463E8A 8AC3 mov al,bl
00463E8C BA 04000000 mov edx,4
00463E91 2BD0 sub edx,eax
00463E93 8955 E8 mov dword ptr ss:[ebp-18],edx
00463E96 C645 EC 00 mov byte ptr ss:[ebp-14],0
00463E9A 8D55 E8 lea edx,dword ptr ss:[ebp-18]
00463E9D 33C9 xor ecx,ecx
00463E9F B8 983F4600 mov eax,NOTEPAD.00463F98
00463EA4 E8 3753FAFF call NOTEPAD.004091E0
00463EA9 8B55 F0 mov edx,dword ptr ss:[ebp-10]
00463EAC 8B86 28030000 mov eax,dword ptr ds:[esi+328]
00463EB2 E8 0928FDFF call NOTEPAD.004366C0
00463EB7 33D2 xor edx,edx
00463EB9 8B86 2C030000 mov eax,dword ptr ds:[esi+32C]
00463EBF E8 FC27FDFF call NOTEPAD.004366C0
00463EC4 8B86 2C030000 mov eax,dword ptr ds:[esi+32C]
00463ECA 8B10 mov edx,dword ptr ds:[eax]
00463ECC FF92 C4000000 call dword ptr ds:[edx+C4]
00463ED2 EB 4E jmp short NOTEPAD.00463F22
00463ED4 8B86 38030000 mov eax,dword ptr ds:[esi+338] 跳过密码验证
00463EDA E8 5549FAFF call NOTEPAD.00408834
00463EDF 8B86 38030000 mov eax,dword ptr ds:[esi+338]
00463EE5 E8 1249FAFF call NOTEPAD.004087FC
00463EEA 84C0 test al,al
00463EEC 74 1C je short NOTEPAD.00463F0A
00463EEE 6A 01 push 1
00463EF0 8B86 3C030000 mov eax,dword ptr ds:[esi+33C]
00463EF6 E8 0106FAFF call NOTEPAD.004044FC
00463EFB 50 push eax
00463EFC E8 D726FAFF call NOTEPAD.004065D8 ; jmp to kernel32.WinExec
00463F01 8BC6 mov eax,esi
00463F03 E8 FCE9FEFF call NOTEPAD.00452904
00463F08 EB 18 jmp short NOTEPAD.00463F22
00463F0A 6A 00 push 0
00463F0C E8 CBFAFFFF call NOTEPAD.004639DC 调用WriteFile
00463F11 6A 01 push 1
00463F13 8B8E 3C030000 mov ecx,dword ptr ds:[esi+33C]
00463F19 B2 01 mov dl,1
00463F1B 8BC6 mov eax,esi
00463F1D E8 02FCFFFF call NOTEPAD.00463B24 挂新线程
任务管理器看到多了notepad.lck的东东,所以在主程序里dump不出的情况下只有smc了:(
smc:
查找命令序列:
mov al,bl
mov edx,4
sub edx,eax
向上找到magic je
记录动态地址:00463E65 74 6D je short NOTEPAD.00463ED4
只有aspack段里是可以写的:(
00480184 83E1 03 and ecx,3
00480187 F3:A4 rep movs byte ptr es:[edi],byte ptr ds:[esi] 代码解压完
00480189 5E pop esi
0048018A 68 00800000 push 8000 比较程式化的
0048018F 6A 00 push 0
00480191 FFB5 52010000 push dword ptr ss:[ebp+152]
00480197 FF95 51050000 call dword ptr ss:[ebp+551]
0048019D 83C6 08 add esi,8
改成:
00480187 F3:A4 rep movs byte ptr es:[edi],byt>
00480189 5E pop esi
0048018A E9 71040000 jmp akala.00480600
0048018F 6A 00 push 0
004805FE的处理:
004805FE 0000 add byte ptr ds:[eax],al 空地址
00480600 66:C705 653E4600 7>mov word ptr ds:[463E65],6D75 加密代码修正
00480609 68 00800000 push 8000 8000空间
0048060E 68 8F014800 push akala.0048018F 目标地址
00480613 C3 retn 返回
00480614 0000 add byte ptr ds:[eax],al 空地址
--------------------------------------------------------------------------------
【破解总结】
不安全,密码壳几乎就个密码验证的sdk,由于受到兼容性的影响,加密段很容易找到。
不过,什么时候arm能这样就好了:)
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
2005-8-15
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)