首页
社区
课程
招聘
Akala 密码壳的多层smc技术注入
发表于: 2005-8-16 19:18 9009

Akala 密码壳的多层smc技术注入

stasi 活跃值
12
2005-8-16 19:18
9009

【破解作者】 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期)

收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 133
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶一下。。。。
2005-8-16 19:18
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
3
【破解作者】 stasi[DCM][BCG][DFCG][FCG][OCN][CZG][D.4s]

佩服!!!
2005-8-17 11:20
0
雪    币: 109
活跃值: (498)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
4
有必要吗?
OD 加载源程序
这里断下
00463E65    74 6D              je short NOTEPAD.00463ED4   
让他 JMP

在那个文件的文件夹里面,现实所有隐藏文件,会发现一个同名的 
*.lck 文件
把他扶植一分~
修改后缀 exe 即刻了~
2005-8-17 13:35
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
学习一下smc技术
2005-8-17 14:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 cater 发布
有必要吗?
OD 加载源程序
这里断下
00463E65 74 6D je short NOTEPAD.00463ED4
让他 JMP
........

在那个文件的文件夹里面,现实所有隐藏文件,会发现一个同名的 
*.lck 文件
把他扶植一分~
修改后缀 exe 即刻了~
请问怎样扶植呢?是复制吗?我复制后不能运行的
2005-8-17 18:49
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
2005-8-18 07:21
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
佩服楼主,加了那么多组织,那里面小弟只加了3个
2005-8-18 10:56
0
游客
登录 | 注册 方可回帖
返回
//