首页
社区
课程
招聘
[旧帖] [求助]关于脱ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov的问题 0.00雪花
发表于: 2008-3-30 18:03 7792

[旧帖] [求助]关于脱ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov的问题 0.00雪花

2008-3-30 18:03
7792
小弟最近遇到个壳叫ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov
根据习惯去看雪论坛查有关的帖子,终于查到了meiting大虾的原创作品
地址是http://bbs.pediy.com/showthread.php?t=32917&highlight=ASProtect+1+23+RC4+3+08+24
于是小弟就按上面所说的一步一步做下去了,到了一步,没弄明白是怎么回事,就跟不下去了
08864DDA    03C3            ADD EAX,EBX                              ; main.00400000
08864DDC    BB 2E010000     MOV EBX,12E
08864DE1    0BDB            OR EBX,EBX
08864DE3    75 07           JNZ SHORT 08864DEC   这里是个跳转,按F7或F8都跳到08864def下面了,可帖子中没写啊,帖子中让按F7,我没弄明白是怎么回事
08864DE5    894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
08864DE9    61              POPAD
08864DEA    50              PUSH EAX
08864DEB    C3              RETN
略过这问题过去F7,,找帖子中说的 896C24 00       入口代码  ,也没找到,中间还遇到了一个5200多次的循环,一直按F7了,累坏了,到最后也没找到入口代码,又没有找到真正的OEP,,哪位大虾指点一下啊.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (25)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没有回话,自己顶一下
2008-3-30 18:50
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
高手如云的看雪论坛怎么没人帮我啊,是不是我没说明白啊,没说明白也要告诉我一下啊
2008-3-30 20:36
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我晕了,都放好几天了,怎么没人回应啊,继续顶上去
2008-3-31 20:42
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这位兄弟,太够意思了,终于有回应了,,只是不知道啥意思
2008-4-1 20:03
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
至少该给个程序,你这样直接贴代码,没有程序,谁知道是怎么回事
2008-4-1 20:25
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这位大虾,你提示的太对了,谢谢你啊,你不提示我都快忘了
ftp://219.239.138.183/SoWorker_cn_hero.exe
这里下载
2008-4-2 13:25
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
SoWorker_cn_hero.exe按照http://bbs.pediy.com/showthread.php?t=32917&highlight=ASProtect+1+23+RC4+3+08+24
的做法,经过25次左右的shift+F9,及hr 12FF68....... 来到了lz提到的那个循环地方
00C16BAB    0FB703             movzx   eax, word ptr [ebx]
00C16BAE    03C6               add     eax, esi
00C16BB0    83C3 02            add     ebx, 2
00C16BB3    8BD0               mov     edx, eax
00C16BB5    8BC6               mov     eax, esi
00C16BB7    E8 0C000000        call    00C16BC8
00C16BBC    66:833B 00         cmp     word ptr [ebx], 0
00C16BC0  ^ 75 E9              jnz     short 00C16BAB          //这里不要跟,
00C16BC2    5E                 pop     esi                     ///在这里F4
00C16BC3    5B                 pop     ebx
00C16BC4    5D                 pop     ebp
00C16BC5    C2 0800            retn    8
一直F7经过下面的代码,就是stolen code了

00C14EBC    56              push    esi                       //这两个不是真实的堆栈操作  
00C14EBD    51              push    ecx
00C14EBE    896C24 04       mov     dword ptr [esp+4], ebp
00C14EC2    EB 01           jmp     short 00C14EC5
00C14EC4    F3:             prefix rep:
00C14EC5    83C4 04         add     esp, 4                      //push  ebp
00C14EC8    8BEC            mov     ebp, esp
00C14ECA    6A FF           push    -1
00C14ECC    68 50A55200     push    52A550
00C14ED1    68 A0664E00     push    4E66A0                           ; 入口地址
00C14ED6    64:A1 00000000  mov     eax, dword ptr fs:[0]

00C14EED    56              push    esi                            //这两个不是真实的堆栈操作
00C14EEE    51              push    ecx
00C14EEF    894424 04       mov     dword ptr [esp+4], eax
00C14EF3    EB 01           jmp     short 00C14EF6
00C14EF5    F3:             prefix rep:
00C14EF6    83C4 04         add     esp, 4                         //push  eax
00C14EF9    64:8925 0000000>mov     dword ptr fs:[0], esp
00C14F00    83EC 58         sub     esp, 58

00C14F14    56              push    esi
00C14F15    51              push    ecx
00C14F16    895C24 04       mov     dword ptr [esp+4], ebx
00C14F1A    EB 01           jmp     short 00C14F1D
00C14F1C    F3:             prefix rep:
00C14F1D    83C4 04         add     esp, 4                        //push  ebx

00C14F31    56              push    esi
00C14F32    51              push    ecx
00C14F33    897424 04       mov     dword ptr [esp+4], esi
00C14F37    EB 01           jmp     short 00C14F3A
00C14F39    F3:             prefix rep:
00C14F3A    83C4 04         add     esp, 4                        //push   esi

00C14F4E    56              push    esi
00C14F4F    51              push    ecx
00C14F50    897C24 04       mov     dword ptr [esp+4], edi
00C14F54    EB 01           jmp     short 00C14F57
00C14F56    F3:             prefix rep:
00C14F57    83C4 04         add     esp, 4                        //push   edi
00C14F5A    8965 E8         mov     dword ptr [ebp-18], esp

等价代码:
push        ebp
mov        ebp,esp
push -1
push    52A550
push    4E66A0     
mov     eax, dword ptr fs:[0]
push        eax
mov     dword ptr fs:[0], esp
sub     esp, 58
push        ebx
push        esi
push        edi
mov     dword ptr [ebp-18], esp
二进制代码
55 8B EC 6A FF 68 50 A5 52 00 68 A0 66 4E 00 64 A1 00 00 00 00 50 64 89 25 00 00 00 00 83 EC 58 53 56 57 89 65 E8
把上面的代码二进制粘贴到下面的位置

004E1309      00               db      00              //真的OEP
004E130A      00               db      00
004E130B      00               db      00
004E130C      00               db      00
004E130D      00               db      00
004E130E      00               db      00
004E130F      00               db      00
004E1310      00               db      00
004E1311      00               db      00
004E1312      00               db      00
004E1313      00               db      00
004E1314      00               db      00
004E1315      00               db      00
004E1316      00               db      00
004E1317      00               db      00
004E1318      00               db      00
004E1319      00               db      00
004E131A      00               db      00
004E131B      00               db      00
004E131C      00               db      00
004E131D      00               db      00
004E131E      00               db      00
004E131F      00               db      00
004E1320      00               db      00
004E1321      00               db      00
004E1322      00               db      00
004E1323      00               db      00
004E1324      00               db      00
004E1325      00               db      00
004E1326      00               db      00
004E1327      00               db      00
004E1328      00               db      00
004E1329      00               db      00
004E132A      00               db      00
004E132B      00               db      00
004E132C      00               db      00
004E132D      00               db      00
004E132E   .  00               db      00
004E132F   .  FF15 9C925100    call    dword ptr [51929C]                       //假的OEP
004E1335   .  33D2             xor     edx, edx

修复IAT的过程比较麻烦,无效的基本上可以用汇编等级1修复,不能修复的有6个如下,查看了一下大致是下面的一些功能,GetModuleHandleA、GetProcAddress是直接反汇编就可以看出来的,GetCommandLineA是跟踪程序的时候想到的,GetVersion是经验的猜测(对比上面的帖子),GetCurrentThread完全是的等价猜测,因为GetCurrentThread也返回-1,至于最后一个很奇怪,它不是API调用就实现如下的C语言功能
int fun(int a){
return a;
}
不知道这个是否也是什么API,我的处理办法是搜索二进制FF15 D0925100 基本上连同上面的push eax一起NOP掉,只有一处改成pop eax
00119168  00C01CD8        GetCommandLineA //eax->"F:\SoWorker_cn_hero.exe"
0011924C  00C01CB8          mov   eax,-1          //GetCurrentThread
00119280  00C01C64       GetModuleHandleA
00119284  00C017A4    GetProcAddress
0011929C  00C01C8C    mov   eax,0A280105             //GetVersion
001192D0  00C01CC8       pop  eax

00505668  |.  FF15 D0925100    call    dword ptr [5192D0]
004FC3C7  |.  FF15 D0925100    call    dword ptr [5192D0]
00469103  |.  FF15 D0925100    call    dword ptr [5192D0]
004F5919   .  FF15 D0925100    call    dword ptr [5192D0]//push edi
004F5C08   .  FF15 D0925100    call    dword ptr [5192D0]

004E1309 >    55                    push    ebp
004E130A      8BEC                  mov     ebp, esp
004E130C      6A FF                 push    -1
004E130E      68 50A55200           push    0052A550
004E1313      68 A0664E00           push    004E66A0                         ;  入口地址
004E1318      64:A1 00000000        mov     eax, dword ptr fs:[0]
004E131E      50                    push    eax
004E131F      64:8925 00000000      mov     dword ptr fs:[0], esp
004E1326      83EC 58               sub     esp, 58
004E1329      53                    push    ebx
004E132A      56                    push    esi
004E132B      57                    push    edi
004E132C      8965 E8               mov     dword ptr [ebp-18], esp
004E132F      B8 0501280A           mov     eax, 0A280105
004E1334      90                    nop

程序可以运行。。。。。
2008-4-2 23:37
0
雪    币: 200
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
,真牛,我也要学习一下.
2008-4-3 11:17
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
首先多谢这位大虾的帮忙,但有还是有点弄不明白,我就按大虾说的要求按F7一直跟到
00C14EBC    56              push    esi                       //这两个不是真实的堆栈操作  
00C14EBD    51              push    ecx
00C14EBE    896C24 04       mov     dword ptr [esp+4], ebp
这里的时候,本人都按一个小时F7了,也没跟到啊,是我方法做错了,还是本来就应该这样啊
2008-4-3 14:22
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
00C16BAB    0FB703             movzx   eax, word ptr [ebx]
00C16BAE    03C6               add     eax, esi
00C16BB0    83C3 02            add     ebx, 2
00C16BB3    8BD0               mov     edx, eax
00C16BB5    8BC6               mov     eax, esi
00C16BB7    E8 0C000000        call    00C16BC8
00C16BBC    66:833B 00         cmp     word ptr [ebx], 0
00C16BC0  ^ 75 E9              jnz     short 00C16BAB          //这里不要跟,
00C16BC2    5E                 pop     esi                     ///在这里F4
00C16BC3    5B                 pop     ebx
00C16BC4    5D                 pop     ebp
00C16BC5    C2 0800            retn    8
你可能是上面那个循环没有跳出来
地址是有一定的随机性,这部分是它申请的内存,不是PE文件到地址空间的映射
为了定位代码,你可以搜索二进制串,。。。。。
2008-4-3 16:10
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
那有几点疑问,这位大虾你脱壳的时候遇到过5200多次的循环吗??
还有刚开始应该是26次Shist+F9还有硬件断点是hr 13ff68吧,麻烦这位大虾指明。谢谢
2008-4-10 19:49
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
088539EC    3100            XOR DWORD PTR DS:[EAX],EAX
088539EE    64:8F05 0000000>POP DWORD PTR FS:[0]
088539F5    58              POP EAX
088539F6    833D B07E8508 0>CMP DWORD PTR DS:[8857EB0],0
088539FD    74 14           JE SHORT 08853A13
088539FF    6A 0C           PUSH 0C
08853A01    B9 B07E8508     MOV ECX,8857EB0
08853A06    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
08853A09    BA 04000000     MOV EDX,4
08853A0E    E8 2DD1FFFF     CALL 08850B40
08853A13    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
08853A16    FF75 F8         PUSH DWORD PTR SS:[EBP-8]
08853A19    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
08853A1C    8338 00         CMP DWORD PTR DS:[EAX],0
08853A1F    74 02           JE SHORT 08853A23
08853A21    FF30            PUSH DWORD PTR DS:[EAX]
08853A23    FF75 F0         PUSH DWORD PTR SS:[EBP-10]
08853A26    FF75 EC         PUSH DWORD PTR SS:[EBP-14]
08853A29    C3              RETN                 //F2这里断下,SHIFT+F9在这里,取消断点.
08853A2A    5F              POP EDI
08853A2B    5E              POP ESI
08853A2C    5B              POP EBX
08853A2D    8BE5            MOV ESP,EBP
08853A2F    5D              POP EBP
08853A30    C3              RETN
是不是下完一次hr 0013FF68 断点后立即删除硬件断点,还是永不删除啊
2008-4-10 19:55
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
马上要沉了,顶起来
2008-4-12 10:27
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
compiler大虾在吗???
2008-4-13 20:03
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
顶起来,希望你能看到...
2008-4-14 21:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
又学到不少知识
2008-4-15 00:29
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
谁来帮帮我吧
2008-4-15 18:55
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
顶起来,,希望大虾能回答我的疑惑
2008-4-16 18:30
0
雪    币: 226
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我也顶个,遭遇同样问题,希望学习下
2008-4-18 11:46
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
顶到回复为止
2008-4-19 12:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
我做的脱ASProtect 1.23 RC4录象,希望对你有所帮助
http://www.namipan.com/d/ASProtect1.23RC4_stolen_Code.rar/bb5951f2c59c9c196dded2ac9c7634749e3eeadbd0465d00
2008-4-19 19:08
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
太感谢了,学习中
2008-4-19 19:59
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
哥啊,你太好了,我这就去脱壳
2008-4-19 20:08
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
birdcfly 这位兄弟,太感谢你了,这个壳我脱掉了,学到了很多知识
2008-4-19 20:44
0
游客
登录 | 注册 方可回帖
返回
//