首页
社区
课程
招聘
[旧帖] [求助]关于程序入口的oep 0.00雪花
发表于: 2009-5-31 13:27 3828

[旧帖] [求助]关于程序入口的oep 0.00雪花

2009-5-31 13:27
3828
开始尝试着脱壳,看着教程,跟着它做,每次到了popad或者大的跳转,就能直接跳转去程序的真正入口地址,确实脱壳后查壳的时候已经脱了,但是不明白的地方就是怎么看oep,那里有提示说这里就是oep吗?下面的程序就是一个udx壳的入口地址,麻烦大家解释下,不然本人搞不懂



谁能解释下为什么这一段就是程序的oep呢?

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
各种语言的入口都是有特征的
2009-5-31 13:34
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
加载壳程序之后就执行到OEP了吧,代码都是加密的吧
2009-5-31 13:44
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
因为每次教程都是一跳到
push cbp
就说是程序的入门地址,所以搞的我很不明白,三人行的教程没解释这些,所以来论坛问下大家,希望大家帮帮忙
2009-5-31 13:51
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
各位,我已经找到了,常有五种语言的入门特征,现发上来,跟我有一样不懂的一起学习

Borland C++

0040163C B> /EB 10             jmp short Borland_.0040164E
0040163E    |66:623A           bound di,dword ptr ds:[edx]
00401641    |43                inc ebx
00401642    |2B2B              sub ebp,dword ptr ds:[ebx]
00401644    |48                dec eax
00401645    |4F                dec edi
00401646    |4F                dec edi
00401647    |4B                dec ebx
00401648    |90                nop
00401649   -|E9 98E04E00       jmp SHELL32.008EF6E6
0040164E    \A1 8BE04E00       mov eax,dword ptr ds:[4EE08B]
00401653     C1E0 02           shl eax,2
00401656     A3 8FE04E00       mov dword ptr ds:[4EE08F],eax
0040165B     52                push edx
0040165C     6A 00             push 0
0040165E     E8 DFBC0E00       call <jmp.&KERNEL32.GetModuleHandleA>

**********************************************************************************
Delphi

00458650 D>  55                push ebp
00458651     8BEC              mov ebp,esp
00458653     83C4 F0           add esp,-10
00458656     B8 70844500       mov eax,Delphi.00458470
0045865B     E8 00D6FAFF       call Delphi.00405C60
00458660     A1 58A14500       mov eax,dword ptr ds:[45A158]
00458665     8B00              mov eax,dword ptr ds:[eax]
00458667     E8 E0E1FFFF       call Delphi.0045684C
0045866C     A1 58A14500       mov eax,dword ptr ds:[45A158]
00458671     8B00              mov eax,dword ptr ds:[eax]
00458673     BA B0864500       mov edx,Delphi.004586B0
00458678     E8 DFDDFFFF       call Delphi.0045645C
0045867D     8B0D 48A24500     mov ecx,dword ptr ds:[45A248]            ; Delphi.0045BC00
00458683     A1 58A14500       mov eax,dword ptr ds:[45A158]
00458688     8B00              mov eax,dword ptr ds:[eax]
0045868A     8B15 EC7D4500     mov edx,dword ptr ds:[457DEC]            ; Delphi.00457E38
00458690     E8 CFE1FFFF       call Delphi.00456864
00458695     A1 58A14500       mov eax,dword ptr ds:[45A158]
0045869A     8B00              mov eax,dword ptr ds:[eax]
0045869C     E8 43E2FFFF       call Delphi.004568E4
**********************************************************************************
Visual C++

0046C07B U>  55                push ebp
0046C07C     8BEC              mov ebp,esp
0046C07E     6A FF             push -1
0046C080     68 18064C00       push UltraSna.004C0618
0046C085     68 F8364700       push UltraSna.004736F8
0046C08A     64:A1 00000000    mov eax,dword ptr fs:[0]
0046C090     50                push eax
0046C091     64:8925 00000000  mov dword ptr fs:[0],esp
0046C098     83EC 58           sub esp,58
0046C09B     53                push ebx
0046C09C     56                push esi
0046C09D     57                push edi
0046C09E     8965 E8           mov dword ptr ss:[ebp-18],esp
0046C0A1     FF15 74824A00     call dword ptr ds:[<&KERNEL32.GetVersion>]  ; kernel32.GetVersion
0046C0A7     33D2              xor edx,edx
0046C0A9     8AD4              mov dl,ah
0046C0AB     8915 403F4F00     mov dword ptr ds:[4F3F40],edx
0046C0B1     8BC8              mov ecx,eax
0046C0B3     81E1 FF000000     and ecx,0FF
0046C0B9     890D 3C3F4F00     mov dword ptr ds:[4F3F3C],ecx
**********************************************************************************
汇编

00401000 汇>  6A 00            push 0
00401002     E8 C50A0000       call <jmp.&KERNEL32.GetModuleHandleA>
00401007     A3 0C354000       mov dword ptr ds:[40350C],eax
0040100C     E8 B50A0000       call <jmp.&KERNEL32.GetCommandLineA>
00401011     A3 10354000       mov dword ptr ds:[403510],eax
00401016     6A 0A             push 0A
00401018     FF35 10354000     push dword ptr ds:[403510]
0040101E     6A 00             push 0
00401020     FF35 0C354000     push dword ptr ds:[40350C]
00401026     E8 06000000       call 汇编.00401031
0040102B     50                push eax
0040102C     E8 8F0A0000       call <jmp.&KERNEL32.ExitProcess>
00401031     55                push ebp
00401032     8BEC              mov ebp,esp
00401034     83C4 B0           add esp,-50
00401037     C745 D0 30000000  mov dword ptr ss:[ebp-30],30
0040103E     C745 D4 0B000000  mov dword ptr ss:[ebp-2C],0B
00401045     C745 D8 37114000  mov dword ptr ss:[ebp-28],汇编.00401137
**********************************************************************************
VB

0040116C V>/$  68 147C4000     push VB.00407C14
00401171   |.  E8 F0FFFFFF     call <jmp.&MSVBVM60.#100>
00401176   |.  0000            add byte ptr ds:[eax],al
00401178   |.  0000            add byte ptr ds:[eax],al
0040117A   |.  0000            add byte ptr ds:[eax],al
0040117C   |.  3000            xor byte ptr ds:[eax],al
2009-5-31 14:30
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
既然连最基本的东西也不知道

那就从最基础的汇编知识开始学起吧
2009-5-31 14:48
0
雪    币: 264
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
没有脱壳的代码很不规则,脱了壳后的代码是很清晰的。刚开始是这样的,多做些联系就会有体会了
2009-5-31 16:32
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这里所谓的大跳转,其实指的是跨段的跳转,就是壳的代码部分和真实的源程序的代码部分,不在同一个区段里面,这样我们就可以通过SECTION HOP 来判断OEP了,你可以试着理解一下一个压缩壳所作的事情(分区段加密),还有PE文件中的段的概念,因为UPX壳往往是在另一个区段里边,就会清楚点了。
2009-5-31 16:47
0
游客
登录 | 注册 方可回帖
返回
//