1. 程式人生 > >Themida/WinLicense V1 8 2 0 +脫殼 FOR PcShare遠端控制會員版本20070826

Themida/WinLicense V1 8 2 0 +脫殼 FOR PcShare遠端控制會員版本20070826

【文章作者】: 冰橙子

【詳細過程】
今天拿到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執行,

找到出錯的地方 修改下跳轉就可以了,不過後來沒修改的也可以運行了。
 

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

https://www.cnblogs.com/captainbed