笔记三之AsProtect

来源:互联网 发布:centos打开终端快捷键 编辑:程序博客网 时间:2024/06/10 03:24
手脱ASProtect 1.2
ASProtect 1.2 / 1.2c-> Alexey Solodovnikov
最后一次异常
在RET处下断
内存镜像00401000下断

直达OEP!!



手脱ASProtect1.23
1.忽略除内存访问的所有断点,隐藏OD
2。来到最后一次异常
3。RET下断,运行到这。
4。下硬件断点 hr XXXX或在00401000下断,运行
5。直达OEP
6.修复,借助辅助工具



手脱ASProtect1.23 RC4
版本的判断:
判断版本:
ASProtect 1.23 RC4 按shift+f9键26次后来到典型异常,在最近处的retn处设断,跳过异常,f8步跟就会来到foep。
ASProtect 1.31 04.27 按shift+f9键36次后来到典型异常,在最近处的retn处设断,跳过异常,f8步跟就会来到foep。
ASProtect 1.31 05.18 按shift+f9键40次后来到典型异常,在最近处的retn处设断,跳过异常,f8步跟就会来到foep。
ASProtect 1.31 06.14 按shift+f9键38次后来到典型异常,在最近处的retn处设断,跳过异常,f8步跟就会来到foep。


1、忽略除内存访问的所有异常,隐藏一下OD,SHIFT+F9 26次后来到最后一次异常


00C739EC    3100                xor dword ptr ds:[eax],eax        //断在这
00C739EE    64:8F05 00000000    pop dword ptr fs:[0]
00C739F5    58                  pop eax
00C739F6    833D B07EC700 00    cmp dword ptr ds:[C77EB0],0
00C739FD    74 14               je short 00C73A13
00C739FF    6A 0C               push 0C
00C73A01    B9 B07EC700         mov ecx,0C77EB0
00C73A06    8D45 F8             lea eax,dword ptr ss:[ebp-8]
00C73A09    BA 04000000         mov edx,4
00C73A0E    E8 2DD1FFFF         call 00C70B40
00C73A13    FF75 FC             push dword ptr ss:[ebp-4]
00C73A16    FF75 F8             push dword ptr ss:[ebp-8]
00C73A19    8B45 F4             mov eax,dword ptr ss:[ebp-C]
00C73A1C    8338 00             cmp dword ptr ds:[eax],0
00C73A1F    74 02               je short 00C73A23
00C73A21    FF30                push dword ptr ds:[eax]
00C73A23    FF75 F0             push dword ptr ss:[ebp-10]
00C73A26    FF75 EC             push dword ptr ss:[ebp-14]
00C73A29    C3                  retn

2、在RETN处下断,SHIFT+F9,取消断点
3、在堆栈窗口找显示程序名的下面2行,下HR 12FFA4
4、一直F8,到这里
00C85C47    BD 4D5CC800         mov ebp,0C85C4D
00C85C4C    FF55 03             call dword ptr ss:[ebp+3]          //到这F7跟
00C85C4F    E8 595CC800         call 0190B8AD
00C85C54    9A E969F29A 5DF3    call far F35D:9AF269E9
00C85C5B    EB 02               jmp short 00C85C5F
00C85C5D    CD20 1BE9EB02       vxdjump 2EBE91B
00C85C63    CD20 33E8EB02       vxdjump 2EBE833
00C85C69    CD20 EB010F8D       vxdcall 8D0F01EB
00C85C6F    6C                  ins byte ptr es:[edi],dx
00C85C70    75 37               jnz short 00C85CA9
00C85C72    5D                  pop ebp
00C85C73    EB 01               jmp short 00C85C76
00C85C75    C7                  ???                                     ; 未知命令
5、一直F7跟,找抽取代码
(1)
00C84F0A    55                  push ebp
00C84F0B    8BEC                mov ebp,esp
00C84F0D    6A FF               push -1
00C84F0F    68 78E35300         push 53E378
00C84F14    68 407B4F00         push 4F7B40
00C84F19    64:A1 00000000      mov eax,dword ptr fs:[0]
55 8B EC 6A FF 68 78 E3 53 00 68 40 7B 4F 00 64 A1 00 00 00 00
(2)
00C84F22    50                  push eax
00C84F23    64:8925 00000000    mov dword ptr fs:[0],esp
00C84F2A    83EC 58             sub esp,58
50 64 89 25 00 00 00 00 83 EC 58
(3)
00C84F30    53                  push ebx
53
(4)
00C84F34    56                  push esi
56
(5)
00C84F38    57                  push edi
00C84F39    8965 E8             mov dword ptr ss:[ebp-18],esp
57 89 65 E8
6、把代码汇总一下
55 8B EC 6A FF 68 78 E3 53 00 68 40 7B 4F 00 64 A1 00 00 00 00 50 64 89 25 00 00 00 00 83 EC 58 53 56 57 89 65 E8
7、继续F7,来到这,就F8
00C85B74    51                  push ecx
00C85B75    57                  push edi
00C85B76    9C                  pushfd
00C85B77    FC                  cld
00C85B78    BF B55BC800         mov edi,0C85BB5
00C85B7D    B9 5E140000         mov ecx,145E
00C85B82    F3:AA               rep stos byte ptr es:[edi]
00C85B84    9D                  popfd
00C85B85    5F                  pop edi
00C85B86    59                  pop ecx
00C85B87    C3                  retn

8、一直F8到这里,然后向上看

004F27CF    FF15 9CC25200       call dword ptr ds:[52C29C]
004F27D5    33D2                xor edx,edx
004F27D7    8AD4                mov dl,ah
004F27D9    8915 34306900       mov dword ptr ds:[693034],edx
004F27DF    8BC8                mov ecx,eax
004F27E1    81E1 FF000000       and ecx,0FF
004F27E7    890D 30306900       mov dword ptr ds:[693030],ecx
004F27ED    C1E1 08             shl ecx,8
004F27F0    03CA                add ecx,edx
004F27F2    890D 2C306900       mov dword ptr ds:[69302C],ecx
004F27F8    C1E8 10             shr eax,10
004F27FB    A3 28306900         mov dword ptr ds:[693028],eax
004F2800    6A 01               push 1
004F2802    E8 933B0000         call SoWorker.004F639A


9、
004F27A4    C3                  retn
004F27A5    33C0                xor eax,eax
004F27A7  ^ EB F8               jmp short SoWorker.004F27A1
004F27A9    0000                add byte ptr ds:[eax],al                //这里就是真正的OEP了
004F27AB    0000                add byte ptr ds:[eax],al
004F27AD    0000                add byte ptr ds:[eax],al
004F27AF    0000                add byte ptr ds:[eax],al
004F27B1    0000                add byte ptr ds:[eax],al
004F27B3    0000                add byte ptr ds:[eax],al
004F27B5    0000                add byte ptr ds:[eax],al
004F27B7    0000                add byte ptr ds:[eax],al
004F27B9    0000                add byte ptr ds:[eax],al
004F27BB    0000                add byte ptr ds:[eax],al
004F27BD    0000                add byte ptr ds:[eax],al
004F27BF    0000                add byte ptr ds:[eax],al
004F27C1    0000                add byte ptr ds:[eax],al
004F27C3    0000                add byte ptr ds:[eax],al
004F27C5    0000                add byte ptr ds:[eax],al
004F27C7    0000                add byte ptr ds:[eax],al
004F27C9    0000                add byte ptr ds:[eax],al
004F27CB    0000                add byte ptr ds:[eax],al
004F27CD    0000                add byte ptr ds:[eax],al
004F27CF    FF15 9CC25200       call dword ptr ds:[52C29C]
004F27D5    33D2                xor edx,edx


10、补上代码,脱壳,修复




ASProtect之以壳解壳 被偷取的代码很多的情况下
一些简单的以壳解壳理论,这样脱壳完程序会很大
实战以壳解壳
1、忽略除内存访问外的所有异常,SHIFT+F9,来到最后一次异常
2、来到最近的RETN
3、打开内存镜像,在00401000处下断,SHIFT+F9,到达假OEP,记下


004F27CF     FF15 9CC25200       call dword ptr ds:[52C29C]
004F27D5     33D2                xor edx,edx
004F27D7     8AD4                mov dl,ah
004F27D9     8915 34306900       mov dword ptr ds:[693034],edx
004F27DF     8BC8                mov ecx,eax
004F27E1     81E1 FF000000       and ecx,0FF
004F27E7     890D 30306900       mov dword ptr ds:[693030],ecx
004F27ED     C1E1 08             shl ecx,8
004F27F0     03CA                add ecx,edx
004F27F2     890D 2C306900       mov dword ptr ds:[69302C],ecx
004F27F8     C1E8 10             shr eax,10
004F27FB     A3 28306900         mov dword ptr ds:[693028],eax
004F2800     6A 01               push 1
004F2802     E8 933B0000         call SoWorker.004F639A
004F2807     59                  pop ecx
004F2808     85C0                test eax,eax
004F280A     75 08               jnz short SoWorker.004F2814

4、重新来,重复上面1和2步,下hr 0012ff68,SHIFT+F9,取消断点,F8,来到最佳的以壳解壳地方

00C85793     BB A2000000         mov ebx,0A2  //最佳地
00C85798     0BDB                or ebx,ebx
00C8579A     75 07               jnz short 00C857A3
00C8579C     894424 1C           mov dword ptr ss:[esp+1C],eax
00C857A0     61                  popad
00C857A1     50                  push eax
00C857A2     C3                  retn
00C857A3     E8 00000000         call 00C857A8
00C857A8     5D                  pop ebp
00C857A9     81ED 4DE14B00       sub ebp,4BE14D

5、完整转存,区域转存,编辑完区段后要重建pe
6、修复




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩有蛀牙牙痛怎么办 牙齿修补后疼痛怎么办 腹部绞痛出冷汗怎么办 结石运动后尿血怎么办 透析病人尿血该怎么办 宝宝吃药就吐怎么办 肚子坠胀尿血怎么办 透析病人回来血尿怎么办 血尿腹痛腰疼怎么办 新诺明 吃多了 怎么办 吃下火药拉肚子怎么办 打哈欠停不下来怎么办 小孩一直咳不停怎么办 孩子咳嗽咳不停怎么办 孩子咳嗽出冷汗怎么办 宝宝一直咳不停怎么办 尿血右上腹疼怎么办 尿道感染尿出血怎么办 儿童血尿腹痛是怎么办 肚子胀痛拉二天血尿怎么办 小牛肚尿道发炎怎么办 吃奶小牛涨肚怎么办 尿路感染尿出血了怎么办 尿血还带血块怎么办 尿道感染尿血了怎么办 老人小便带血怎么办 胎儿双肾盂扩张怎么办 宝宝发烧后血尿怎么办 孕妇肾盂分离16怎么办 急性尿道炎尿血严重怎么办 尿急尿频尿血严重怎么办 打预防针两天后发烧怎么办 孩子发烧心跳快怎么办 拉肚子脱水人犯困怎么办 拉肚子拉脱水了怎么办 孕妇肚子疼拉水怎么办 腹泻拉脱水了怎么办 扁桃体化脓反复发烧怎么办 小孩扁桃体化脓发烧怎么办 运动后头痛是怎么办 运动完后头疼怎么办