|
![]() | 作者: mmzz321 [mmzz321]
![]() |
登录 |
---------------------------------------------------------------------------------------- 【文章标题】: Themida/WinLicense V1.8.2.0 +脱壳 FOR PcShare远程控制会员版本20070826 【文章作者】: 冰橙子 【作者邮箱】: hackroad@gmail.com 【作者QQ号】: 13680582 blog:http://hi.baidu.com/hacktear 【软件名称】: PcShare远程控制会员版本20070826 【编写语言】: Microsoft Visual C++ 6.0 【使用工具】: OllyICE、LoadPE、ImportREC、Hidetools 【操作平台】: Win9x/NT/2000/XP 【软件介绍】: 国内知名木马 【作者声明】: 我是菜鸟我怕谁!!! ------------------------------------------------------------------------------------------ 【详细过程】 今天拿到PcShare远程控制会员版本20070826,看看说明 一、加了插默认浏览器的功能 二、重新修改了文件下载,一目了然,肉机不上线也可以管理。 三、加了窗口管理的功能、 四、加了群发消息的功能 五、加了强制肉机访问网页的功能 六、增加代理(不完善测试阶段) 七、增加了记录系统登录密码功能 看着看着 就想破解,说干就干,不管是不是菜鸟,还是先查壳把, 用PEID查壳: Themida/WinLicense V1.8.2.0 + -> Oreans Technologies * Sign.By.fly * 如果你的查不到,可以下载最新的特征库 由于是Themida壳,1.9版本的后反OD的插件,只能用工具隐藏,PEID分辨不是很好,所以干脆就用HideToolz.exe 把OD隐藏起来 在HideToolz.exe里添加上你的OD的目录,在隐藏选项里选上: Hide process Protect process Hide windows Protect form windows Anti-anti debug Auto Start 设置好后打开OD, 1、设置OllyDBG忽略所有异常选项。 2、用HideOD插件: 勾选Auto Run HideOD、HideNtdebugBit。 勾选ZwQueryInformationProcess-->method2。 OD载入后,到这里: 00556014 P> B8 00000000 mov eax,0 00556019 60 pushad 0055601A 0BC0 or eax,eax 0055601C 74 68 je short 00556086 ; PcShare.00556086 0055601E E8 00000000 call 00556023 ; PcShare.00556023 00556023 58 pop eax ; kernel32.7C816FD7 00556024 05 53000000 add eax,53 00556029 8038 E9 cmp byte ptr ds:[eax],0E9 0055602C 75 13 jnz short 00556041 ; PcShare.00556041 0055602E 61 popad 0055602F EB 45 jmp short 00556076 ; PcShare.00556076 00556031 DB2D 37605500 fld tbyte ptr ds:[556037] 00556037 FFFF ??? ; Unknown command 00556039 FFFF ??? ; Unknown command 0055603B FFFF ??? ; Unknown command 0055603D FFFF ??? ; Unknown command 0055603F 3D 40E80000 cmp eax,0E840 00556044 0000 add byte ptr ds:[eax],al 00556046 58 pop eax ; kernel32.7C816FD7 00556047 25 00F0FFFF and eax,FFFFF000 0055604C 33FF xor edi,edi ; ntdll.7C930738 接着运行okdodo大侠的Themida脚本后: 运行完成后有提示: 脚本执行完毕,请注意OEP是否被偷代码! 点确定,来到这里: 00422C05 50 push eax 00422C06 64:8925 00000000 mov dword ptr fs:[0],esp 00422C0D 83EC 68 sub esp,68 00422C10 53 push ebx 00422C11 56 push esi ; PcShare.0067B539 00422C12 57 push edi 00422C13 8965 E8 mov dword ptr ss:[ebp-18],esp 00422C16 33DB xor ebx,ebx 00422C18 895D FC mov dword ptr ss:[ebp-4],ebx 00422C1B 6A 02 push 2 00422C1D FF15 4C0D4800 call dword ptr ds:[480D4C] ; msvcrt.__set_app_type 00422C23 59 pop ecx ; PcShare.00422D5A 00422C24 830D 34EA4900 FF or dword ptr ds:[49EA34],FFFFFFFF 被偷了OEP。 拿一个VC++的程序来参考下: 00401F10 D> 55 push ebp 00401F11 8BEC mov ebp,esp 00401F13 6A FF push -1 00401F15 68 E8394000 push 4039E8 00401F1A 68 96204000 push 402096 00401F1F 64:A1 00000000 mov eax,dword ptr fs:[0] 00401F25 50 push eax 00401F26 64:8925 00000000 mov dword ptr fs:[0],esp 00401F2D 83EC 68 sub esp,68 00401F30 53 push ebx 00401F31 56 push esi 00401F32 57 push edi ; ntdll.7C930738 00401F33 8965 E8 mov dword ptr ss:[ebp-18],esp 00401F36 33DB xor ebx,ebx 00401F38 895D FC mov dword ptr ss:[ebp-4],ebx 00401F3B 6A 02 push 2 00401F3D FF15 4C334000 call dword ptr ds:[40334C] ; msvcrt.__set_app_type 00401F43 59 pop ecx ; kernel32.7C816FD7 00401F44 830D 6C514000 FF or dword ptr ds:[40516C],FFFFFFFF 00401F4B 830D 70514000 FF or dword ptr ds:[405170],FFFFFFFF 00401F52 FF15 48334000 call dword ptr ds:[403348] ; msvcrt.__p__fmode 为了防止代码混淆,点分析代码,向上看 : 00422BEA . C3 retn 00422BEB > E9 70010000 jmp 00422D60 ; jmp to msvcrt.terminate 00422BF0 96 db 96 00422BF1 85 db 85 00422BF2 CB db CB 00422BF3 1B db 1B 00422BF4 1D db 1D 00422BF5 . A6 cmps byte ptr ds:[esi],byte ptr es:[e> 00422BF6 . AD lods dword ptr ds:[esi] 00422BF7 . 9B wait 00422BF8 . DDD0 fst st 00422BFA . A9 7B8C7D46 test eax,467D8C7B 00422BFF . 2AF8 sub bh,al 00422C01 . 4C dec esp 00422C02 . 014E 2B add dword ptr ds:[esi+2B],ecx 00422C05 . 50 push eax 00422C06 . 64:8925 00000000 mov dword ptr fs:[0],esp 00422C0D . 83EC 68 sub esp,68 00422C10 . 53 push ebx 00422C11 . 56 push esi ; PcShare.0067B539 00422C12 . 57 push edi 00422C13 . 8965 E8 mov dword ptr ss:[ebp-18],esp 00422C16 . 33DB xor ebx,ebx 00422C18 . 895D FC mov dword ptr ss:[ebp-4],ebx 00422C1B . 6A 02 push 2 00422C1D . FF15 4C0D4800 call dword ptr ds:[480D4C] ; msvcrt.__set_app_type 确定OEP:00422BF0 并补上OEP: 00422BF0 55 push ebp 00422BF1 8BEC mov ebp,esp 00422BF3 6A FF push -1 00422BF5 68 E8394000 push 4039E8-------------------------① 00422BFA 68 96204000 push 402096-------------------------② 00422BFF 64:A1 00000000 mov eax,dword ptr fs:[0] 00422C05 . 50 push eax 00422C06 . 64:8925 00000000 mov dword ptr fs:[0],esp 00422C0D . 83EC 68 sub esp,68 00422C10 . 53 push ebx 00422C11 . 56 push esi ; PcShare.0067B539 00422C12 . 57 push edi 00422C13 . 8965 E8 mov dword ptr ss:[ebp-18],esp 00422C16 . 33DB xor ebx,ebx 00422C18 . 895D FC mov dword ptr ss:[ebp-4],ebx 00422C1B . 6A 02 push 2 其中①和②处的数据可以看考堆栈里的数据 在堆栈里找到: 0012FF7C 00000212 0012FF80 00422C05 PcShare.00422C05 0012FF84 00422D5A jmp to msvcrt._except_handler3----------------------------③ 0012FF88 004873E8 PcShare.004873E8------------------------------------------④ 0012FF8C FFFFFFFF 0012FF90 79ED1599 0012FF94 5300CF5B 0012FF98 006CB800 PcShare.006CB800 0012FF9C 0012FFE0 0012FFA0 006BF644 PcShare.006BF644 0012FFA4 7C930738 ntdll.7C930738 0012FFA8 FFFFFFFF 0012FFAC 0012FFF0 0012FFB0 0012FFC4 0012FFB4 7FFDC000 0012FFB8 0012FFC4 0012FFBC 0012FFB0 0012FFC0 745438A6 0012FFC4 7C816FD7 RETURN to kernel32.7C816FD7 0012FFC8 7C930738 ntdll.7C930738 0012FFCC FFFFFFFF 0012FFD0 7FFDC000 0012FFD4 8054BB38 0012FFD8 0012FFC8 0012FFDC FEFE6D78 0012FFE0 FFFFFFFF End of SEH chain 0012FFE4 7C839AA8 SE handler 0012FFE8 7C816FE0 kernel32.7C816FE0 0012FFEC 00000000 0012FFF0 00000000 0012FFF4 00000000 0012FFF8 00556014 offset PcShare.<ModuleEntryPoint> 0012FFFC 00000000 ④处的数据就是①,③处的数据就是② 补好OEP后 把EIP指针改到OEP处 用LordPE_fix.EXE脱壳 打开ImportREC 填上OEP后自动查找IAT,获取函数输入表 如果有无效的就剪切掉。 到此脱壳完成, PEID 查壳:Microsoft Visual C++ 6.0 脱壳后3.85 MB 运行程序,程序有时候提示操作系统错误,原因我不是很清楚,用OD载入 F9运行, 找到出错的地方 修改下跳转就可以了,不过后来没修改的也可以运行了。 --------------------------------------------------------------------------------------- 【经验总结】 写文章好累,尤其本人打字慢,真是累煞我也…… 我脱壳也是个菜鸟,参考了看雪的好多大侠的文章,还用了大侠的脚本,留个脱文,做个纪念, 作为一段记忆碎片把。最后还是非常非常的感谢您看完本文!谢谢啊! -------------------------------------------------------------------------------- [此贴被 逝风残梦(mmzz321) 在 09月12日16时31分 编辑过] |
地主 发表时间: 07-09-12 16:30 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号