首页
社区
课程
招聘
Obsidium 1.3.0.4学习手记疑问
发表于: 2007-4-12 21:19 6513

Obsidium 1.3.0.4学习手记疑问

2007-4-12 21:19
6513
<<坛主 第2篇 Obsidium 1.3.0.4学习手记>>
  这里看不懂,请高手指点!

设置内存访问异常,2次后会调用VirtualAlloc函数。返回到如下代码,取消花指令干扰后,得到的干净代码如下
00403688                     6A 00            push    0
0040368A                     6A 56            push    56
0040368C                     6A 00            push    0
0040368E                     68 4A0DCE09      push    9CE0D4A
00403693                     FFB6 98000000    push    dword ptr [esi+98]
00403699                     FF56 54          call    [esi+54]
0040369C                     90               nop
0040369D                     90               nop
0040369E                     90               nop
0040369F                     90               nop
004036A0                     8B55 0C          mov     edx, [ebp+C]
004036A3                     90               nop
004036A4                     90               nop
004036A5                     90               nop
004036A6                     90               nop
004036A7                     81C2 00040000    add     edx, 400
004036AD                     90               nop
004036AE                     90               nop
004036AF                     90               nop
004036B0                     90               nop
004036B1                     6A 40            push    40
004036B3                     68 00300000      push    3000
004036B8                     52               push    edx
004036B9                     6A 00            push    0
004036BB                     50               push    eax
004036BC                     FF96 84000000    call    [esi+84] //这里调用VirtualAlloc,我们从这里CALL返回

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
如图设置OD:


2次异常后,单步跟踪,直到走出004036BC call    [esi+84]
上传的附件:
2007-4-12 21:30
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢坛主!我要加倍学习!
另问坛主:Obsidium 1.3.0.4 需KEY文件,才能运行的壳!
是否同arm一样,必须有可用KEY文件解压才能脱吗?
2007-4-13 12:53
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
请叫坛主!
另外,再按Ctrl+G跳到0040C633 ,这是所有代码的出口,将其改成:
0040C633     - E9 62AF4E00        jmp 008F759 //别忘设个断,所有函数处理完毕回调用这里的代码,你再撤消选择将其还原
地址是否正确?008F759A
2007-4-14 13:34
0
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
008F759A 这个地址是你自己选定的,在不同环境下可能不同。你联系上下文看看。
2007-4-14 21:37
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢坛主!我已解决!
2007-4-15 06:48
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
再次请坛主指点!
按教程跟踪,我跟了N遍,就是搞不出  kernel32.dll   010A         GetCommandLineA  ?
会中断三次,得到三个特殊函数:
GetCommandLineA
GetVersion
GetCurrentProcess
GetCommandLineA 一次中断就没看见?我的系统sp2
my tree:
Target: E:\obsidium1.304\TraceMe1.304.exe
OEP: 000013C0        IATRVA: FFFE5000        IATSize: 000000D4

FThunk: FFFE5000        NbFunc: 00000010
1        FFFE5000        kernel32.dll        03AD        lstrcpy
1        FFFE5004        kernel32.dll        03A7        lstrcmp
1        FFFE5008        kernel32.dll        01B0        GetStringTypeA
1        FFFE500C        kernel32.dll        0235        LCMapStringW
1        FFFE5010        kernel32.dll        0234        LCMapStringA
1        FFFE5014        kernel32.dll        0265        MultiByteToWideChar
1        FFFE5018        kernel32.dll        0242        LoadLibraryA
1        FFFE501C        kernel32.dll        0198        GetProcAddress
1        FFFE5020        kernel32.dll        020D        HeapReAlloc
1        FFFE5024        kernel32.dll        036B        VirtualAlloc
1        FFFE5028        kernel32.dll        0203        HeapAlloc
1        FFFE502C        kernel32.dll        018B        GetOEMCP
1        FFFE5030        kernel32.dll        00F7        GetACP
1        FFFE5034        kernel32.dll        00FE        GetCPInfo
1        FFFE5038        kernel32.dll        0176        GetModuleHandleA
1        FFFE503C        kernel32.dll        01AD        GetStartupInfoA

FThunk: FFFE5044        NbFunc: 00000001
1        FFFE5044        kernel32.dll        01DB        GetVersion

FThunk: FFFE504C        NbFunc: 00000015
1        FFFE504C        kernel32.dll        0347        TerminateProcess
1        FFFE5050        kernel32.dll        013C        GetCurrentProcess
1        FFFE5054        kernel32.dll        0358        UnhandledExceptionFilter
1        FFFE5058        kernel32.dll        0174        GetModuleFileNameA
1        FFFE505C        kernel32.dll        00EF        FreeEnvironmentStringsA
1        FFFE5060        kernel32.dll        00F0        FreeEnvironmentStringsW
1        FFFE5064        kernel32.dll        037F        WideCharToMultiByte
1        FFFE5068        kernel32.dll        014E        GetEnvironmentStrings
1        FFFE506C        kernel32.dll        0150        GetEnvironmentStringsW
1        FFFE5070        kernel32.dll        0255        LockResource
1        FFFE5074        kernel32.dll        01AF        GetStdHandle
1        FFFE5078        kernel32.dll        015F        GetFileType
1        FFFE507C        kernel32.dll        0151        GetEnvironmentVariableA
1        FFFE5080        kernel32.dll        01DC        GetVersionExA
1        FFFE5084        kernel32.dll        0207        HeapDestroy
1        FFFE5088        kernel32.dll        0205        HeapCreate
1        FFFE508C        kernel32.dll        036E        VirtualFree
1        FFFE5090        kernel32.dll        0209        HeapFree
1        FFFE5094        kernel32.dll        02C5        RtlUnwind
1        FFFE5098        kernel32.dll        038C        WriteFile
1        FFFE509C        kernel32.dll        01B3        GetStringTypeW

FThunk: FFFE50A4        NbFunc: 0000000C
1        FFFE50A4        user32.dll        02D9        wsprintfA
1        FFFE50A8        user32.dll        0114        GetDlgItemTextA
1        FFFE50AC        user32.dll        00C5        EnableWindow
1        FFFE50B0        user32.dll        0257        SetFocus
1        FFFE50B4        user32.dll        01DC        MessageBeep
1        FFFE50B8        user32.dll        01BC        LoadIconA
1        FFFE50BC        user32.dll        0237        SendDlgItemMessageA
1        FFFE50C0        user32.dll        009A        DestroyWindow
1        FFFE50C4        user32.dll        0112        GetDlgItem
1        FFFE50C8        user32.dll        023C        SendMessageA
1        FFFE50CC        user32.dll        00C7        EndDialog
1        FFFE50D0        user32.dll        009F        DialogBoxParamA
2007-4-17 22:03
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
再次请坛主指点!
2007-4-22 10:41
0
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
9
时间太长了,我都记不清原来情况了。

你用的是文章那个实例吗?如是,按着其步骤再调试看看
2007-4-22 11:29
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
第2篇 Obsidium 1.3.0.4学习手记
就是文章那个实例
我跟了N遍,就是搞不出  kernel32.dll   010A   GetCommandLineA  ?

http://bbs.pediy.com/showthread.php?t=19497&highlight=Obsidium
2007-4-22 13:20
0
游客
登录 | 注册 方可回帖
返回
//