灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:6022回复:0

中国菜刀登陆密码清除工具(附脱壳、破解方法)

楼主#
更多 发布于:2013-02-17 17:30
今天拿到了一个菜刀,据说里面有很多webshell,打开一看竟然存在密码,遂开始了一段破解之旅。很久没有破解软件了,很简单的东西,翻阅了很多资料才搞定。
【破解工具】
PEID、OD52pojie专版(用过暗组以前收集的OD不太好用)
【脱壳】
使用PEID查了一下菜刀的主程序-chopper.exe是经过加壳的--UPX 0.89.6 - 1.02 / 1.05 - 1.24 ->Markus ; Laszlo。UPX的,还是比较简单的。
ESP定律法:
1. od载入

004AD090 > 60 pushad ;按一下F8
004AD091 BE 00A04700 mov esi,chopper.0047A000
004AD096 8DBE0070F8FF lea edi,dword ptr ds:[esi+0xFFF87000]

2. 右面的寄存器窗口

EAX 00000000
ECX 0012FFB0
EDX 7C92E4F4 ntdll.KiFastSystemCallRet
EBX7FFDE000
ESP 0012FFA4//这里右键-数据窗口中跟随
EBP 0012FFF0

3. 来到左下角的数据窗口

0012FFA4 7C930208 ntdll.7C930208//在顶端7C930208的这里右键-断点-硬件访问-WORD
0012FFA8 FFFFFFFF
0012FFAC0012FFF0
0012FFB0 0012FFC4

4. 按一下F9,运行程序

004AD237 8D4424 80 lea eax,dword ptr ss:[esp-0x80] ; F8步进
004AD23B 6A 00push 0x0
004AD23D 39C4 cmp esp,eax
004AD23F ^ 75 FA jnzXchopper.004AD23B
004AD241 83EC 80 sub esp,-0x80; 鼠标点击这里,F4运行到这里
004AD244 - E9 B977FBFF jmp chopper.00464A02 ;再按F8即到达OEP

004AD249 0000 add byte ptr ds:[eax],al
004AD24B 0000 addbyte ptr ds:[eax],al

5.到达OEP。

00464A02 55 push ebp ;这里就是OEP了。右键-用Ollydump脱壳调试进程
00464A03 8BEC mov ebp,esp
00464A05 6AFF push -0x1
00464A07 68 18614700 push chopper.00476118
00464A0C 68D04B4600 push chopper.00464BD0 ; jmp 到 msvcrt._except_handler3
00464A11 64:A100000000 mov eax,dword ptr fs:[0]
00464A17 50 push eax
00464A18 64:89250000000>mov dword ptr fs:[0],esp

图片:20130216120431604.jpg


再次使用PEID查壳,已经没有了,发现程序采用VC++编写。
【破解】
破解费了我将近两天时间,走了很多弯路。最后我发现我都要把整个汇编程序读懂了 。。
最开始我找了很多下断点的方法,没有成功。
经过对比加密和不加密的菜刀程序,发现程序没有区别。而db.mdb文件发生了修改,可以断定,密码是保存在mdb文件中的,而不是保存在程序中的。而打开程序后,还会生成一个cache.tmp文件。在发现目录下没有db.mdb文件时,chopper.exe会创建这个db.mdb文件。而这个文件自身也是有密码的。
随后我准备采用API断点的方式,对ReadFile下断点。结果竟然发现了盗号木马。。。 不过后来还是没有找到关键call和关键跳。
这时,我绞尽脑汁(最后发现其实我已经在关键call里面转了很多回了,就是没有分析出整个程序的流程,所以没有找到密码)终于想到了一个办法--关键字搜索。
最后我好像是F8一步一步跟进的。。。忘记了。上工具吧。

0044A89E 8B0D A0FB4900 mov ecx,dword ptr ds:[0x49FBA0]
0044A8A4 E827220100 call 88.0045cad0 ; 关键call
0044A8A9 84C0 test al,al
0044A8AB 74 07je X88.0044A8B4
0044A8AD 8BCF mov ecx,edi
0044A8AF E8 1C0C0000 call88.0044B4D0 ; 弹出密码框,F7进入,本程序就是在这里修改了两个关键跳实现的。
0044A8B4 381D 91FB4900 cmp byteptr ds:[0x49FB91],bl
0044A8BA 75 7C jnz X88.0044A938

喜欢0 评分0
游客

返回顶部