首页
社区
课程
招聘
[原创]RLPacK 1.21全保护学习笔记
发表于: 2008-8-19 00:14 16795

[原创]RLPacK 1.21全保护学习笔记

2008-8-19 00:14
16795

【文章作者】: [UnPacKcN]XuZhenG
【作者邮箱】: xuzheng1111@126.com
【作者主页】: http://hi.baidu.com/xuzheng1111
              http://xz.osa.pl
              http://xz.bee.pl
【软件名称】: RLPacK Full Protection 1.21
【下载地址】: 自己去UnPacKcN下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
              如有人将此用入商业用途,给作者造成损失本人概不负责。
--------------------------------------------------------------------------------
【详细过程】
上次在壳狂下载了性价比很高的壳哈...
RLPacK全保护,既然ASPr TMD 和穿山甲 被壳狂的高手 玩得乱转...
我们菜鸟捡个漏...
捏个软柿子...

OD载入
F9第一次运行,状态栏提示Terminated 试了N个调试器隐藏插件和N个OD都不行...
那怎么办呢?那只能Step往下走了...

大胆得往前走啊,往前走,莫回头~~~~~~~~~~
不好意思,献丑了,言归正传...

入口如下:

01001000 > $ /EB 06         jmp short 复件_cal.01001008
01001002   . |68 2EA80000   push 0A82E
01001007   . |C3            retn
01001008   > \9C            pushfd
01001009   .  60            pushad
0100100A   .  E8 02000000   call 复件_cal.01001011
0100100F   .  33C0          xor eax,eax
01001011   $  8BC4          mov eax,esp
01001013   .  83C0 04       add eax,4
01001016   .  93            xchg eax,ebx
01001017   .  8BE3          mov esp,ebx
01001019   .  8B5B FC       mov ebx,dword ptr ds:[ebx-4]
0100101C   .  81EB 3F904000 sub ebx,40903F
01001022   .  61            popad
01001023   .  9D            popfd
01001024   .- E9 D3B50200   jmp 复件_cal.0102C5FC
0102C5FC    60              pushad
0102C5FD    E8 00000000     call 复件_cal.0102C602
0102C602    83C4 04         add esp,4
0102C605    8B6C24 FC       mov ebp,dword ptr ss:[esp-4]
0102C609    E8 8B020000     call 复件_cal.0102C899
0102C60E    E8 74240000     call 复件_cal.0102EA87
0102C613    E8 88430000     call 复件_cal.010309A0
0102C618    837C24 28 01    cmp dword ptr ss:[esp+28],1
0102C61D    75 0C           jnz short 复件_cal.0102C62B
0102C61F    8B4424 24       mov eax,dword ptr ss:[esp+24]
0102C623    8985 7E470000   mov dword ptr ss:[ebp+477E],eax
0102C629    EB 0C           jmp short 复件_cal.0102C637
0102C62B    8B85 7A470000   mov eax,dword ptr ss:[ebp+477A]
0102C631    8985 7E470000   mov dword ptr ss:[ebp+477E],eax
0102C637    E8 100D0000     call 复件_cal.0102D34C
0102C63C    E8 6F240000     call 复件_cal.0102EAB0
0102C641    E8 1F230000     call 复件_cal.0102E965                ;Anti1
0102C646    8DB5 AD530000   lea esi,dword ptr ss:[ebp+53AD]
0102C64C    8D9D 17030000   lea ebx,dword ptr ss:[ebp+317]
0102C652    33FF            xor edi,edi
0102C654    E8 3B3D0000     call 复件_cal.01030394                ;检测调试器Call
0102E965    60              pushad
0102E966    81BD C2470000 0>cmp dword ptr ss:[ebp+47C2],ABBC680>
0102E970    75 11           jnz short 复件_cal.0102E983
省略一部分代码
0102E9CA    64:8925 0000000>mov dword ptr fs:[0],esp
0102E9D1    33C0            xor eax,eax
0102E9D3    8700            xchg dword ptr ds:[eax],eax         ; Anti-Exchange 0 and ???????? Please Nop it And Step Over it Easily.
0102E9D5    64:8F05 0000000>pop dword ptr fs:[0]
0102E9DC    83C4 04         add esp,4
0102E9DF    61              popad
0102E9E0    C3              retn
01030394    60              pushad
01030395    E8 4D030000     call 复件_cal.010306E7                     ; 镜像大小+3000 使加载出错... NOP掉 这就是为什么天草大哥要教育我们[color=red]要修正镜

像大小[/color]
0103039A    E8 FB020000     call 复件_cal.0103069A                     ; 抹除PE头 NOp掉
0103039F    E8 AC030000     call 复件_cal.01030750                     ; 这个Call用Kernel32.DLL基址回写堆栈中的程序基址
010303A4    8985 A2470000   mov dword ptr ss:[ebp+47A2],eax
010303AA    6A 40           push 40
010303AC    68 00100000     push 1000
010303B1    68 00100000     push 1000
010303B6    6A 00           push 0
010303B8    FF95 FD030000   call dword ptr ss:[ebp+3FD]              ; VirtualAlloc申请空间
010303BE    8985 3B4A0000   mov dword ptr ss:[ebp+4A3B],eax
010303C4    8D9D 114A0000   lea ebx,dword ptr ss:[ebp+4A11]
010303CA    BE 05000000     mov esi,5
010303CF    EB 29           jmp short 复件_cal.010303FA
010303D1    FF33            push dword ptr ds:[ebx]                  ; /这个循环的作用是读取一部分壳的输入表其中有几个Anti函数 包括CreateFileA 

IsDebuggerPresent 和CheckRemoteDebuggerPresent
010303D3    FFB5 A2470000   push dword ptr ss:[ebp+47A2]
010303D9    E8 28050000     call 复件_cal.01030906
010303DE    0BC0            or eax,eax                               ; 此处Eax存放函数指针
010303E0    74 14           je short 复件_cal.010303F6
010303E2    FF30            push dword ptr ds:[eax]
010303E4    59              pop ecx
010303E5    80F9 CC         cmp cl,0CC
010303E8    75 0A           jnz short 复件_cal.010303F4
010303EA    C785 434A0000 0>mov dword ptr ss:[ebp+4A43],1
010303F4    8903            mov dword ptr ds:[ebx],eax
010303F6    83C3 04         add ebx,4
010303F9    4E              dec esi
010303FA    83FE 00         cmp esi,0
010303FD  ^ 77 D2           ja short 复件_cal.010303D1                 ; \循环结束
010303FF    83BD 434A0000 0>cmp dword ptr ss:[ebp+4A43],1            ; 判断是否已经检测出调试器
01030406    0F84 57010000   je 复件_cal.01030563
0103040C    C785 4F4A0000 9>mov dword ptr ss:[ebp+4A4F],94
01030416    8D85 4F4A0000   lea eax,dword ptr ss:[ebp+4A4F]
0103041C    50              push eax
0103041D    FF95 194A0000   call dword ptr ss:[ebp+4A19]             ; 获得系统版本 并写入ebp+4A19
01030423    83BD 5F4A0000 0>cmp dword ptr ss:[ebp+4A5F],1
0103042A    74 19           je short 复件_cal.01030445
0103042C    83BD 114A0000 0>cmp dword ptr ss:[ebp+4A11],0
01030433    74 10           je short 复件_cal.01030445                 ; 检测是否已经成功读取IsDebuggerPresent
01030435    FF95 114A0000   call dword ptr ss:[ebp+4A11]             ; 调用IsDebuggerPresent判断是否有除Ring0之外调试器
0103043B    0BC0            or eax,eax                               ; 有则返回1 无则返回0(eax)
0103043D    74 06           je short 复件_cal.01030445
0103043F    8985 434A0000   mov dword ptr ss:[ebp+4A43],eax
01030445    83BD 5F4A0000 0>cmp dword ptr ss:[ebp+4A5F],2            ; 判断系统版本是否为NT/2K
0103044C    75 38           jnz short 复件_cal.01030486
0103044E    81BD 154A0000 7>cmp dword ptr ss:[ebp+4A15],6D3A8272
01030458    74 27           je short 复件_cal.01030481
0103045A    8D85 474A0000   lea eax,dword ptr ss:[ebp+4A47]
01030460    50              push eax
01030461    6A FF           push -1
01030463    FF95 154A0000   call dword ptr ss:[ebp+4A15]             ; 调用CheckRemoteDebuggerPresent判断是否有调试器
01030469    8B85 154A0000   mov eax,dword ptr ss:[ebp+4A15]
0103046F    8138 8B442408   cmp dword ptr ds:[eax],824448B
01030475    75 0A           jnz short 复件_cal.01030481                ; 如果有调试器,则不跳转 赋值ebp+4A47为1代表已有调试器,以后会有判断并Anti
01030477    C785 474A0000 0>mov dword ptr ss:[ebp+4A47],1
01030481    E8 62FDFFFF     call 复件_cal.010301E8
01030486    FFB5 254A0000   push dword ptr ss:[ebp+4A25]
0103048C    FFB5 A6470000   push dword ptr ss:[ebp+47A6]
01030492    E8 6F040000     call 复件_cal.01030906
01030497    EB 03           jmp short 复件_cal.0103049C
01030499    FE              ???                                      ; 未知命令
0103049A    FFFF            ???                                      ; 未知命令
0103049C    8D9D 294A0000   lea ebx,dword ptr ss:[ebp+4A29]          ; 取"OLLYDBG"字符串
010304A2    6A 00           push 0
010304A4    53              push ebx
010304A5    FFD0            call eax                                 ; 调用FindWindowA找OLLYDBG窗口(本人用修改版OD哈哈)
010304A7    0BC0            or eax,eax                               ; 有则返回句柄,无则返回0(eax)
010304A9    74 0A           je short 复件_cal.010304B5
010304AB    C785 434A0000 0>mov dword ptr ss:[ebp+4A43],1            ; 如果有,则赋值ebp+4A43为1 以后有Anti判断,虽然用了修改版OD,但是还是被发现了,不知为何
010304B5    33DB            xor ebx,ebx
010304B7    68 50D4AC0C     push 0CACD450
010304BC    FFB5 A6470000   push dword ptr ss:[ebp+47A6]
010304C2    E8 3F040000     call 复件_cal.01030906
010304C7    FFD0            call eax                                 ; 调用GetForeGroundWindow获取当前工作窗口的句柄
010304C9    8BF0            mov esi,eax
010304CB    68 0A10299C     push 9C29100A
010304D0    FFB5 A6470000   push dword ptr ss:[ebp+47A6]
010304D6    E8 2B040000     call 复件_cal.01030906
010304DB    68 00100000     push 1000
010304E0    FFB5 3B4A0000   push dword ptr ss:[ebp+4A3B]
010304E6    56              push esi
010304E7    FFD0            call eax                                 ; 获取窗口类名 GetWindowTextA
:中间略去一部分...:
01030531    6A 00           push 0
01030533    68 80000000     push 80
01030538    6A 03           push 3
0103053A    6A 00           push 0
0103053C    6A 01           push 1
0103053E    68 00000080     push 80000000
01030543    57              push edi
01030544    FF95 1D4A0000   call dword ptr ss:[ebp+4A1D]             ; 此处调用CreateFileA找寻Services 判断是否有调试器服务
0103054A    83F8 FF         cmp eax,-1
0103054D    74 0A           je short 复件_cal.01030559
0103054F    C785 434A0000 0>mov dword ptr ss:[ebp+4A43],1
01030559    47              inc edi
0103055A    803F 00         cmp byte ptr ds:[edi],0
0103055D  ^ 75 FA           jnz short 复件_cal.01030559
0103055F    47              inc edi
01030560    4E              dec esi
01030561  ^ 75 CE           jnz short 复件_cal.01030531                ; 循环判断是否有调试器服务
01030563    FF85 3F4A0000   inc dword ptr ss:[ebp+4A3F]
01030569    68 00400000     push 4000
0103056E    68 00100000     push 1000
01030573    FFB5 3B4A0000   push dword ptr ss:[ebp+4A3B]
01030579    FF95 05040000   call dword ptr ss:[ebp+405]
0103057F    61              popad
01030580    C3              retn
010306E7    60              pushad
010306E8    64:A1 30000000  mov eax,dword ptr fs:[30]
010306EE    85C0            test eax,eax
010306F0    78 0F           js short 复件_cal.01030701
010306F2    8B40 0C         mov eax,dword ptr ds:[eax+C]
010306F5    8B40 0C         mov eax,dword ptr ds:[eax+C]
010306F8    8140 20 0030000>add dword ptr ds:[eax+20],3000           ; 这句话修改了镜像大小 本来为31C8C + 3000 = 34C8C 用LoadPE修复可得原来的31C8C
…………………………
0103071D    61              popad
0103071E    C3              retn
010306DB    C60401 00       mov byte ptr ds:[ecx+eax],0              ; 这句话是用0填充原来的PE头 故NOP掉
010306DF    49              dec ecx
010306E0    83F9 00         cmp ecx,0
010306E3  ^ 77 F6           ja short 复件_cal.010306DB                 ; 这个循环抹除了PE头,是LoadPE不能正确地识别程序 ImportREC不能正确附加在这个程序上
010306E5    61              popad
010306E6    C3              retn
010310DB                                46 69 6C 65 4D 6F            FileMo
010310EB  6E 43 6C 61 73 73 00 31 38 34 36 37 2D 34 31 00  nClass.18467-41.
010310FB  5C 5C 2E 5C 53 49 43 45 00 5C 5C 2E 5C 53 49 57  \\.\SICE.\\.\SIW
0103110B  56 49 44 00 5C 5C 2E 5C 4E 54 49 43 45 00 5C 5C  VID.\\.\NTICE.\\
0103111B  2E 5C 52 45 47 53 59 53 00 5C 5C 2E 5C 52 45 47  .\REGSYS.\\.\REG
0103112B  56 58 47 00 5C 5C 2E 5C 46 49 4C 45 56 58 47 00  VXG.\\.\FILEVXG.
0103113B  5C 5C 2E 5C 46 49 4C 45 4D 00 5C 5C 2E 5C 54 52  \\.\FILEM.\\.\TR
0103114B  57 00 5C 5C 2E 5C 49 43 45 45 58 54              W.\\.\ICEEXT
0103114B                                         B7 A2 CF               发
0103115B  D6 B5 F7 CA D4 C6 F7 20 2D 20 C7 EB B9 D8 B1 D5  值魇云?- 请关闭
0103116B  B5 F7 CA D4 C6 F7 B2 A2 D6 D8 D0 C2 C6 F4 B6 AF  调试器并重新启动
0103117B  D3 A6 D3 C3 B3 CC D0 F2 A3 A1 0D 0A 57 69 6E 64  应用程序!..Wind
0103118B  6F 77 73 20 4E 54 20 D3 C3 BB A7 C7 EB D7 A2 D2  ows NT 用户请注
0103119B  E2 A3 BA C8 E7 B9 FB B0 B2 D7 B0 C1 CB 20 57 69  猓喝绻沧傲?Wi
010311AB  6E 49 63 65 2F 53 6F 66 74 49 63 65 20 B7 FE CE  nIce/SoftIce 服
010311BB  F1 A3 AC 0D 0A BC B4 D2 E2 CE B6 D7 C5 C4 FA D4  瘢?.即意味着您
010311CB  CB D0 D0 C1 CB B5 F7 CA D4 C6 F7 A3 A1 00 B7 A2  诵辛说魇云鳎?发
010311DB  CF D6 BC E0 CA D3 C6 F7 20 2D 20 C7 EB B9 D8 B1  现监视器 - 请关
010311EB  D5 BC E0 CA D3 C6 F7 B2 A2 D6 D8 D0 C2 C6 F4 B6  占嗍悠鞑⒅匦缕舳
010311FB  AF D3 A6 D3 C3 B3 CC D0 F2 A3 A1 0D 0A 57 69 6E  τ贸绦颍?.Win
0103120B  64 6F 77 73 20 4E 54 20 D3 C3 BB A7 C7 EB D7 A2  dows NT 用户请注
0103121B  D2 E2 A3 BA C8 E7 B9 FB B0 B2 D7 B0 C1 CB 20 46  意:如果安装了 F
0103122B  69 6C 65 4D 6F 6E 2F 52 65 67 4D 6F 6E 20 B7 FE  ileMon/RegMon 服
0103123B  CE F1 A3 AC 0D 0A BC B4 D2 E2 CE B6 D7 C5 C4 FA  务,..即意味着您
0103124B  D4 CB D0 D0 C1 CB BC E0 CA D3 C6 F7 A3           运行了监视器!..
0102C70B    FFD3            call ebx
0102C70D    83C4 08         add esp,8
0102C710    E8 D53E0000     call 复件_cal.010305EA                     ; Anti2 (Main)
0102C715    E8 91340000     call 复件_cal.0102FBAB
010305EA    60              pushad
010305EB    83BD 434A0000 0>cmp dword ptr ss:[ebp+4A43],1           ; 检测FindWindowAnti
010305F2    74 09           je short 复件_cal.010305FD              ; 不能跳,跳了就完了,可以Nop掉
010305F4    83BD 474A0000 0>cmp dword ptr ss:[ebp+4A47],1           ; 检测是否存在RemoteDebugger
010305FB    75 4A           jnz short 复件_cal.01030647             ; 这里一定要跳,不跳就完了,可以改成jMP
010305FD    83BD E04C0000 0>cmp dword ptr ss:[ebp+4CE0],0
01030604    75 3B           jnz short 复件_cal.01030641
01030606    81BD C2470000 0>cmp dword ptr ss:[ebp+47C2],ABBC680D    ; 检测操作系统是否为Nt/2K
01030610    75 17           jnz short 复件_cal.01030629
01030612    FFB5 C2470000   push dword ptr ss:[ebp+47C2]
01030618    FFB5 A6470000   push dword ptr ss:[ebp+47A6]
0103061E    E8 E3020000     call 复件_cal.01030906
01030623    8985 C2470000   mov dword ptr ss:[ebp+47C2],eax
01030629    6A 30           push 30
0103062B    8D85 DD470000   lea eax,dword ptr ss:[ebp+47DD]
01030631    50              push eax
01030632    8D85 564B0000   lea eax,dword ptr ss:[ebp+4B56]
01030638    50              push eax
01030639    6A 00           push 0
0103063B    FF95 C2470000   call dword ptr ss:[ebp+47C2]            ; 这里MessageBoxA提示检测到调试器,请关闭调试服务(还挺友好的~~)
01030641    61              popad
01030642    58              pop eax                                 ; [color=red]这个Anti的精华在这里...破坏返回地址(使该子程序不能正常地返回主程序而出现异

常退出),即下面的两行 如果上面的第一个Je跳了 则可以NOP掉下面两句,运行效果与直接跳开ANti的效果基本相同,不过会多MessageBox提示^_^[/color]
01030643    61              popad
01030644    C3              retn
01030645    EB 51           jmp short 复件_cal.01030698
01030647    83BD 4B4A0000 0>cmp dword ptr ss:[ebp+4A4B],1           ; 上面的那个必须要跳得跳就跳到这里
0103064E    75 48           jnz short 复件_cal.01030698             ; 这里他跳了,咱们让他跳,因为跳了就可以绕过Anti
01030650    83BD E04C0000 0>cmp dword ptr ss:[ebp+4CE0],0           ; 如果3个Jnz都不跳又会被Anti 看下面的pop eax 和popad
01030657    75 3B           jnz short 复件_cal.01030694             ; 下面这部分与上面惊人类似,本人就不详述了...
01030659    81BD C2470000 0>cmp dword ptr ss:[ebp+47C2],ABBC680D
01030663    75 17           jnz short 复件_cal.0103067C
01030665    FFB5 C2470000   push dword ptr ss:[ebp+47C2]
0103066B    FFB5 A6470000   push dword ptr ss:[ebp+47A6]
01030671    E8 90020000     call 复件_cal.01030906
01030676    8985 C2470000   mov dword ptr ss:[ebp+47C2],eax
0103067C    6A 30           push 30
0103067E    8D85 DD470000   lea eax,dword ptr ss:[ebp+47DD]
01030684    50              push eax
01030685    8D85 D74B0000   lea eax,dword ptr ss:[ebp+4BD7]
0103068B    50              push eax
0103068C    6A 00           push 0
0103068E    FF95 C2470000   call dword ptr ss:[ebp+47C2]
01030694    61              popad
01030695    58              pop eax                                 ; 又是精华Anti
01030696    61              popad
01030697    C3              retn
01030698    61              popad                                   ; 让他跳到这里,看见没有,这里有popad没有pop eax和popad了,返回就正常了...
01030699    C3              retn
0102C844    8985 A5530000   mov dword ptr ss:[ebp+53A5],eax
0102C84A    803E 01         cmp byte ptr ds:[esi],1
0102C84D  ^ 0F85 46FFFFFF   jnz 复件_cal.0102C799
0102C853    E8 B0350000     call 复件_cal.0102FE08
0102C858    68 00400000     push 4000
0102C85D    68 87020000     push 287
0102C862    FFB5 A9530000   push dword ptr ss:[ebp+53A9]
0102C868    FF95 05040000   call dword ptr ss:[ebp+405]
0102C86E    E8 D0220000     call 复件_cal.0102EB43                     ; 这个Call抹除了Original PE Header (AntiDUMP)  NOp掉
0102C873    E8 CC340000     call 复件_cal.0102FD44
0102C878    E8 DF0B0000     call 复件_cal.0102D45C
0102C87D    E8 850A0000     call 复件_cal.0102D307
0102C7B7    8B85 A5530000   mov eax,dword ptr ss:[ebp+53A5]    ; /解出函数表循环
0102C7BD    8B00            mov eax,dword ptr ds:[eax]
0102C7BF    E8 16360000     call 复件_cal.0102FDDA               ; 直接返回,不知何用
0102C7C4    50              push eax
0102C7C5    FFB5 A1530000   push dword ptr ss:[ebp+53A1]       
0102C7CB    E8 E9400000     call 复件_cal.010308B9               ; 此Call过后EAX已经被解出函数指针
0102C7D0    85C0            test eax,eax
0102C7D2    0F84 5B200000   je 复件_cal.0102E833
0102C7D8    E8 FF360000     call 复件_cal.0102FEDC               ; 这个就是传说中的加密Call ([color=red]高智商!可惜被NOP掉了[/color])
0102C7DD    E8 85350000     call 复件_cal.0102FD67               ; 这个Call负责填写IAT([color=red]干苦力的...[/color])
0102C7E2    83C7 04         add edi,4                          ; [color=green]edi += 4 可见要写入的函数RVA在edi中[/color]
0102C7E5    8B85 A5530000   mov eax,dword ptr ss:[ebp+53A5]
0102C7EB    8938            mov dword ptr ds:[eax],edi
0102C7ED    8385 A5530000 0>add dword ptr ss:[ebp+53A5],4
0102C7F4    8B85 A5530000   mov eax,dword ptr ss:[ebp+53A5]
0102C7FA    8338 00         cmp dword ptr ds:[eax],0
0102C7FD  ^ 75 B8           jnz short 复件_cal.0102C7B7          ; \循环结束 注释:这里不仅写IAT而且
0102FEDC    60              pushad
0102FEDD    83BD 7C4C0000 0>cmp dword ptr ss:[ebp+4C7C],0     ; 这里判断原加密表中函数地址是否为空
0102FEE4    0F85 FA000000   jnz 复件_cal.0102FFE4
0102FFEA    83BD 804C0000 0>cmp dword ptr ss:[ebp+4C80],0     ; 这个大概是RLPacK设置中是否对所有函数加密,为1就不加密,为0就加密
0102FFF1    74 14           je short 复件_cal.01030007          ; 这个不能跳
0102FFF3    3BBD A2470000   cmp edi,dword ptr ss:[ebp+47A2]   ; 这个cmp控制对Kernel32.dll中的函数一定要加密
0102FFF9    74 0C           je short 复件_cal.01030007          ; 这个也不能跳
0102FFFB    3BBD A6470000   cmp edi,dword ptr ss:[ebp+47A6]   ; 这个cmp控制对USER32.dll中的函数一定要加密
01030001    0F85 67010000   jnz 复件_cal.0103016E               ; 但是这个一定要跳,所以为了保险 前面两个NOP掉,这个改成JmP
0102FD67    60              pushad
0102FD68    83BD 804C0000 0>cmp dword ptr ss:[ebp+4C80],1
0102FD6F    74 09           je short 复件_cal.0102FD7A
0102FD71    83BD 684C0000 0>cmp dword ptr ss:[ebp+4C68],0
0102FD78    75 07           jnz short 复件_cal.0102FD81
0102FD7A    E8 58000000     call 复件_cal.0102FDD7              ; 这个Call过后呢 IAT就被填写了 F7 Step InTo
0102FD7F    EB 3B           jmp short 复件_cal.0102FDBC
0102FDD7    8907            mov dword ptr ds:[[color=green]edi[/color]],eax               ; 果然不出所料(看上面的绿字),看这里~~看这里~~~看这里~~~~
0102FDD9    C3              retn
0102D8A4    61              popad                             ; 恢复初始 寄存器状态,打起精神,要到OEP了
0102D8A5    8980 A44C0000   mov dword ptr ds:[eax+4CA4],eax   ; 保存寄存器内容!
0102D8AB    8998 A84C0000   mov dword ptr ds:[eax+4CA8],ebx
0102D8B1    8988 AC4C0000   mov dword ptr ds:[eax+4CAC],ecx
0102D8B7    8990 B04C0000   mov dword ptr ds:[eax+4CB0],edx
0102D8BD    89B0 B44C0000   mov dword ptr ds:[eax+4CB4],esi
0102D8C3    89B8 B84C0000   mov dword ptr ds:[eax+4CB8],edi
0102D8C9    89A0 C04C0000   mov dword ptr ds:[eax+4CC0],esp
0102D8CF    89A0 C44C0000   mov dword ptr ds:[eax+4CC4],esp
0102D8D5    89A8 BC4C0000   mov dword ptr ds:[eax+4CBC],ebp

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (32)
雪    币: 250
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
终于发够贴了 现在传上附件

脱壳后的文件还没有减肥 太困了 高手原谅


还有一点说明关于上面最后的代码
是完善以后的去除Anti包括绕开IAT加密甚至去除双开限制 的代码

修复CodeReplace的代码 请点击 我帖中的连接访问UnPacKcN察看Faint88的文章
上传的附件:
2008-8-19 00:28
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
3
*****************
2008-8-19 00:59
0
雪    币: 250
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4

这宣传搞得.....

嗯?

这是什么意思...
2008-8-19 11:52
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
很不错,顶一下
2008-8-19 12:07
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
可能是指 “[UnPacKcN]XuZhenG
自己去UnPacKcN下载”
这些话?猜错了莫怪
2008-8-19 12:09
0
雪    币: 250
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
Fly大哥来了啊!

UnPacKcN好长时间不能访问了啊...

防黑工作好像不好唉~~...
2008-8-19 12:11
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
神啊让我死吧
2008-8-19 12:11
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
哈。
我还以为我这解析有问题呀

2008-8-19 12:12
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
10
谢谢关注,这几天一直被小人攻击
现在恢复了,可能某些地方解析域名需要一段时间
2008-8-19 12:13
0
雪    币: 250
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
我这里被解析到了 127.0.0.1 回到我自己的IIS去了

已经好长时间了 昨天晚上好像恢复了一下 然后又不行了...
2008-8-19 12:17
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
12
WINDOWS\system32\drivers\etc\hosts
在host中绑定一下新IP
121.10.112.146       www.unpack.cn
2008-8-19 12:30
0
雪    币: 250
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
没办法,就是这个样子,很明显论坛再次被攻击了...

IIS的虚拟映射指错了地方

PS:学习fly大哥的 EncryptPE V2.2007.4.11试炼Service保护方式脱壳  中...
上传的附件:
2008-8-19 12:39
0
雪    币: 471
活跃值: (4063)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
好长啊!学到了对付SEH的方法了,以后搞破解有办法对付异常
2008-8-19 13:09
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
15
[QUOTE=fly;498475]可能是指 “[UnPacKcN]XuZhenG
自己去UnPacKcN下载”
这些话?猜错了莫怪[/QUOTE]

  http://xz.osa.pl
  http://xz.bee.pl

不知道你怎么看这两个。。反正我觉得是赢利性质的了。。
我只是随便说说~~~如果大家都为了宣传来PEDIY发高质量文章,怎么看也是好事~~~

请将我的话理解成评论性质的~~~

另外我本人其实很赞成,并且倾向这种比较功利的行为~~~

你付出了,我给你回报,这样才能维持平衡。无论过于倾向哪一边,合作或者说朋友就很难维持下去了
2008-8-19 13:42
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
16
抱歉,猜错了,没看这些链接
另外同意15楼的观点

TO XzOsaPl:可能是域名没有解析过去,再等等应该可以的
2008-8-19 13:59
0
雪    币: 250
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
不好意思 你理解错了...

http://xz.osa.pl  这两个域名 指向的是我的个人网站
只不过因为 这两天空间的出错 指向了服务商的网站
结果就变成了你看到的营利性质的 ...

问题很快就会得到修复...

PS:最近破了个知名FTP软件 哈哈 正好用上
2008-8-19 14:00
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
18
刚下了rlpack1.20.1full,你破文就出来了
2008-8-19 14:53
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
fly有了自己的网站就不怎么在看雪发精华了,2008好像还没发过。为什么外壳版主不让fly做?
2008-8-19 15:53
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
20
也有发的,不过不是精华。写东西越来越少了,谢谢还记得
另外那个版主是因为时间等原因而离职的,有幕启总有幕落,人生亦如此
2008-8-19 16:44
0
雪    币: 250
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
21
UnPacKcN在 恢复了 几个小时之后 又一次...

我就不讲了...

UnPacKcN的服务器维护真的应该好好反省下...
2008-8-19 18:49
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
22
要么40岁之前依靠一己之力冲上去,要么40岁之后依靠别人的力量冲上去

前者是千里马,后者是伯乐

现在最多是上半场的尾声

刘邦40岁打江山,柳传志40岁创业

并不是幕落,而是还没开始
2008-8-19 18:52
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
23
曹植41挂了
2008-8-19 19:16
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
24
别吓我,我还很憧憬40岁的
2008-8-19 19:17
0
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
25
刚打算重用该壳 又挂掉了 o(∩_∩)o... 学习一下脱壳技术 ~~
2008-8-20 09:30
0
游客
登录 | 注册 方可回帖
返回
//