首页
社区
课程
招聘
[原创]手脱ASProtect第二篇---OEP 抽取
发表于: 2006-4-12 09:14 17371

[原创]手脱ASProtect第二篇---OEP 抽取

2006-4-12 09:14
17371
收藏
免费 7
支持
分享
最新回复 (44)
雪    币: 141
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
最初由 linex 发布
55b000 是代码段结束地址
5641A4 是输入表开始地址
564A40 是输入表结束地址


55b000  是代码段结束地址从那里看出来,alt+M,中如果

地址:00401000
大小:00404000

这个值是否为:00405000
2006-4-23 11:09
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
27
to chinadev:
一般是主文件后面的吧
其他的你愿意DUMP当然可以DUMP了,只要能正常运行就可以.

to crbb:
最初由 crbb 发布
55b000 是代码段结束地址从那里看出来,alt+M,中如果

地址:00401000
大小:00404000

这个值是否为:00405000
........

这个值应该是:
401000+404000=805000
2006-4-23 11:23
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
28
3.修正预先解码用到的API
再运行后还是有错误,发现是有二个API函数错误
00401300  - FF25 F8415600   JMP DWORD PTR DS:[5641F8]
004071A0  - FF25 BC435600   JMP DWORD PTR DS:[5643BC]
经跟踪后发现都是: kernel32.GetProcAddress,修正它。

这个没必要之后修复吧,如果在修复的时候发现kernel32有个别无效,那90%就是GetProcAddress了
2006-4-25 16:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
好文章 不过我不明白 "在011A000A新建EIP,F9运行一下,OK" 是什么原理
2006-4-26 11:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
为什么 我下载的这个没加壳的程序  使用起来出现这个错误  是不是没修复好的关系呢
2006-4-26 11:07
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
31
最初由 wujiesl 发布
好文章 不过我不明白 "在011A000A新建EIP,F9运行一下,OK" 是什么原理

在011A000A代码行上点右键---->新建EIP,再按F9运行修复代码,然后按F12暂停,OK是修复完成的意思.

2.我这里运行正常,DUMP区段的方法可能兼容性上不太好,完美的可以去还原混淆代码.
2006-4-26 14:02
0
雪    币: 175
活跃值: (2331)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
希望能看到下篇。
2006-4-29 11:40
0
雪    币: 250
活跃值: (103)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
33
支持!!!
2006-4-29 15:00
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
最初由 xwqgsterry 发布
大大我有几点不明白:
1:你代码里的
“ CMP EDX,55B000
MOV EAX,5641A4
CMP EAX,564A40” “
那些55B000 ,5641A4,564A40是从哪里来的~~~

........

大大我有几点不明白:
1:你代码里的
“              CMP EDX,55B000   ALT+M数据
    MOV EAX,5641A4               IAT头
  CMP EAX,564A40”   “          IAT尾
那些55B000 ,5641A4,564A40是从哪里来的~~~
2006-6-9 16:06
0
雪    币: 277
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
00F9E5D1    C3              RETN       //在这里F4下来
F7一下到达
00F950C4     55                    push ebp                               ; iconxp.005B3478
00F950C5     8BEC                  mov ebp,esp
00F950C7     83C4 B4               add esp,-4C
00F950CA     B8 A44EF900           mov eax,0F94EA4
00F950CF     E8 3806FEFF           call 00F7570C
00F950D4     E8 C3E4FDFF           call 00F7359C
00F950D9     8D40 00               lea eax,dword ptr ds:[eax]
00F950DC     0000                  add byte ptr ds:[eax],al

搜索83,C4,28,5D,5F,5E,5B,C3 无反应
2006-6-9 17:19
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
36
新版的Asprotect的特征码有变化.
不是2.2版本的不能用83,C4,28,5D,5F,5E,5B,C3找OEP

to kmjyq :  IAT输入表在数据窗口可以看到.
0046A150  00000000
0046A154 >7C96AE65  ntdll.RtlDeleteCriticalSection//开始部分
0046A158 >7C95F2FC  ntdll.RtlLeaveCriticalSection
0046A15C >7C95F337  ntdll.RtlEnterCriticalSection
0046A160 >7C8284E0  kernel32.InitializeCriticalSection
0046A164 >7C828CFC  kernel32.VirtualFree
0046A168 >7C82BEC9  kernel32.VirtualAlloc
0046A16C >7C82BC09  kernel32.LocalFree
0046A170 >7C82BB92  kernel32.LocalAlloc
0046A174 >7C82C07F  kernel32.GetVersion
0046A178 >7C82BC6D  kernel32.GetCurrentThreadId
0046A17C >7C82B44F  kernel32.InterlockedDecrement
0046A180 >7C82B43B  kernel32.InterlockedIncrement
0046A184 >7C818EA7  kernel32.VirtualQuery
0046A188 >7C82DC10  kernel32.WideCharToMultiByte
0046A18C >7C82BC7C  kernel32.MultiByteToWideChar
0046A190 >7C82EF08  kernel32.lstrlenA
0046A194 >7C817702  kernel32.lstrcpynA
0046A198 >7C801E38  kernel32.LoadLibraryExA
0046A19C >7C82E15F  kernel32.GetThreadLocale
0046A1A0 >7C801FF6  kernel32.GetStartupInfoA
0046A1A4 >7C82BFC1  kernel32.GetProcAddress
0046A1A8 >7C8263DC  kernel32.GetModuleHandleA
0046A1AC >7C825F78  kernel32.GetModuleFileNameA
0046A1B0 >7C826DD9  kernel32.GetLocaleInfoA
0046A1B4 >7C814A34  kernel32.GetCommandLineA
0046A1B8 >7C827B48  kernel32.FreeLibrary
0046A1BC >7C806194  kernel32.FindFirstFileA
0046A1C0 >7C82AC2D  kernel32.FindClose
0046A1C4 >7C813039  kernel32.ExitProcess
0046A1C8 >7C82F3FE  kernel32.WriteFile
0046A1CC >7C85951C  kernel32.UnhandledExceptionFilter
0046A1D0 >7C944119  ntdll.RtlUnwind
0046A1D4 >7C815DAE  kernel32.RaiseException
0046A1D8 >7C82076F  kernel32.GetStdHandle
0046A1DC  00000000
0046A1E0 >77E2DFC5  user32.GetKeyboardType
0046A1E4 >77E182EC  user32.LoadStringA
0046A1E8 >77E4D8DE  user32.MessageBoxA
0046A1EC >77E1A7C7  user32.CharNextA         //结束
0046A1F0  00000000        
0046A1F4 >00000000
0046A1F8 >00000000
0046A1FC >00000000
0046A200  00000000
2006-6-9 18:22
0
雪    币: 277
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
[QUOTE]最初由 linex 发布
新版的Asprotect的特征码有变化.
不是2.2版本的不能用83,C4,28,5D,5F,5E,5B,C3找OEP

和楼主同样的文件
2006-6-9 20:32
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
38
00F9E5C9    C2 0C00         RETN 0C
00F9E5CC    68 00000000     PUSH 0
00F9E5D1    C3              RETN       //在这里F4下来

F7一下,然后把光标拉到段首,再搜索.
ps: 新手就不要做了,先打好基础再做.
2006-6-12 08:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
好帖,支持一下!!!
2006-6-12 11:21
0
雪    币: 6056
活跃值: (3476)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
40
原来如此...好文啊.支持.跟着脱一下.

.................
"这个程序的输入表被加密了,搜索参考文本串,两个85之间的CALL进去后,找
到IAT处理的CALL(详细的请参考我的上一篇)"
.................
请问这里我搜索参加文本串里怎么没有两个85

2006-6-23 13:10
0
雪    币: 6056
活跃值: (3476)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
41
这个程序的输入表被加密了,搜索参考文本串,两个85之间的CALL进去后,找到IAT处理的CALL(详细的请参考我的上一篇)


第85间的第二个call按f4直接程序就跑起来了.

00F88103    68 A083F800     push 0F883A0                            ; ASCII "85
"
00F88108    E8 D7D0FFFF     call 00F851E4
00F8810D    A1 1067F900     mov eax,dword ptr ds:[F96710]
00F88112    8B00            mov eax,dword ptr ds:[eax]
00F88114    E8 ABBC0000     call 00F93DC4    //这里F4.程序就跑起来了
00F88119    84C0            test al,al
00F8811B    75 0A           jnz short 00F88127
00F8811D    68 A083F800     push 0F883A0                            ; ASCII "85
"


是不是这两个85的位置有问题?指点一下吧.
2006-6-23 16:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
学习之中...........
2006-6-24 06:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
看你们,脱起来,这么顺手,可我就怎么不行呢?

我这也有一个asprotect 1.2x加壳的,东东,脱得我累死了,我先直接DUMP,好像不行吧..晕死...
2006-7-1 11:40
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
那我们换个方法,OD忽略所有异常,bp GetModuleHandleA,

不明白你怎?做呢...可以教我怎? ( 那我们换个方法,OD忽略所有异常,bp GetModuleHandleA, )

我一檫始就是停在呃彦呀..?怎?揠..

00401000 >  68 01305B00     PUSH iconxp.005B3001
00401005    E8 01000000     CALL iconxp.0040100B
0040100A    C3              RETN
0040100B    C3              RETN
0040100C    1E              PUSH DS
0040100D    DE27            FISUB WORD PTR DS:[EDI]
0040100F    1D D32FE96C     SBB EAX,6CE92FD3
00401014    74 67           JE SHORT iconxp.0040107D
00401016    338E 079EA63C   XOR ECX,DWORD PTR DS:[ESI+3CA69E07]
0040101C    9C              PUSHFD
0040101D    D5 86           AAD 86
0040101F    D1AB 7F1FB68F   SHR DWORD PTR DS:[EBX+8FB61F7F],1
00401025    0FAA            RSM                                      ; 特权命令
00401027    D6              SALC
00401028    D1FC            SAR ESP,1
0040102A    F5              CMC
0040102B    C7              ???                                      ; 未知命令
0040102C    54              PUSH ESP
0040102D    B5 3B           MOV CH,3B
0040102F    C3              RETN
00401030    D4 95           AAM 95
00401032    34 5D           XOR AL,5D
00401034    16              PUSH SS

2006-7-1 12:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
[QUOTE]F7一下到达壳的代码部分(此法来自LOOVBOOM的ASProtect 2.x脱壳系列)
搜索一下83,C4,28,5D,5F,5E,5B,C3 ,有两处,在第二处下断点

代码:--------------------------------------------------------------------------------
00F8887A    8D5424 04       LEA EDX,DWORD PTR SS:[ESP+4]
00F8887E    E8 B1750000     CALL 00F8FE34
00F88883    E8 5C700000     CALL 00F8F8E4
00F88888    8BC3            MOV EAX,EBX
00F8888A    E8 61A3FEFF     CALL 00F72BF0
00F8888F    E8 10F0FFFF     CALL 00F878A4     //这里进去
00F88894    83C4 28         ADD ESP,28
00F88897    5D              POP EBP
00F88898    5F              POP EDI
00F88899    5E              POP ESI
00F8889A    5B              POP EBX
00F8889B    C3              RETN

请问为什么要在第二处下中断?下什么中断?

我用自己加密了一个程序,走到这里之后,
00AA8A14    E8 FBA1FCFF     call    00A72C14
00AA8A19    E8 26F0FFFF     call    00AA7A44
00AA8A1E    83C4 28         add     esp, 28
00AA8A21    5D              pop     ebp
00AA8A22    5F              pop     edi
00AA8A23    5E              pop     esi
00AA8A24    5B              pop     ebx
00AA8A25    C3              retn

如果设bp AA8A19 那么会说
"don't know how to continue, because memory at address ca7c0c78 is not readable try to change EIP or pass exception to program"
如果用硬件中断,那么程序就不会中断,直接运行了,
请教改怎么中断
2006-8-10 17:34
0
游客
登录 | 注册 方可回帖
返回
//