论坛: 编程破解 标题: Themida/WinLicenseV1.8.2.0+脱壳FORPcShare远程控制会员版20070826 复制本贴地址    
作者: 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号