吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 90246|回复: 456
收起左侧

[原创] 秒到OEP,支持所有壳,包括VMP等。。。。。

    [复制链接]
yangand 发表于 2011-11-15 13:48
本帖最后由 yangand 于 2011-11-20 22:30 编辑

       你可以怀疑这个方法,真的假的一试就知道,如果不知道怎么找,可以把你的试验品传到网盘,有空我把针对你试验品的步骤帖给你。
       有的OEP被抽了代码的只能找到伪OEP,也就是被抽掉之后剩下的头部地址。

       你也可以直接无视这个方法,对你少一个选择,对我没有任何损失。




       首先讲一下方法的原理。
       每一个程序都是由无数个CALL加其参数组成了,在程序里,每一个CALL都是有返回地址的。当在程序领空的时候,返回到不能返回的时候。这个返回地址就是在程序的main函数里。
       所以只要找到了最终程序领空的返回地址,也就找到了main函数的地方。main函数的起始位置也就是oep了。而OD是会记录每一个返回地址的。我们用OD就可以迅速找到OEP了,而且适合所有壳(除了有注册框的壳,因为你不过掉注册框就到不了程序的领空)。
       下面以一个加ZP的壳为例(无注册框),来说明如何操作。
       1. OD载入程序,入口点为 004711DA >  E8 01000000     
call 演示程序.004711E0
004711DF    5C              pop esp
004711E0    872C24          xchg dword ptr ss:[esp],ebp
004711E3    8DAD 9CFEFFFF   lea ebp,dword ptr ss:[ebp-0x164]
004711E9    872C24          xchg dword ptr ss:[esp],ebp
004711EC  ^ E9 8AFEFFFF     jmp 演示程序.0047107B
004711F1    B0 1D           mov al,0x1D
004711F3  ^ 7C E8           jl X演示程序.004711DD

       2.直接shift+F9让程序跑起来,然后来到OD的堆栈窗口。直接拉到最下面。
0012FF54   0012FF7C  指向下一个 SEH 记录的指针
0012FF58   0044D4EA  SE处理程序
0012FF5C   0012FF70
0012FF60   00000000
0012FF64   00000000
0012FF68   7FFDE000
0012FF6C   014617CC
0012FF70   0012FF88
0012FF74   0044EDA0  演示程序.0044EDA0
0012FF78   7FFDE000
0012FF7C   0012FFC4  指向下一个 SEH 记录的指针
0012FF80   004039B0  SE处理程序
0012FF84   0012FF88
0012FF88  /0012FF94
0012FF8C  |75BEED6C  返回到 kernel32.75BEED6C
0012FF90  |7FFDE000
0012FF94  ]0012FFD4
0012FF98  |76F737F5  返回到 ntdll.76F737F5
0012FF9C  |7FFDE000
0012FFA0  |77FF54A7
0012FFA4  |00000000
0012FFA8  |00000000
0012FFAC  |7FFDE000
0012FFB0  |00000000
0012FFB4  |00000000
0012FFB8  |00000000
0012FFBC  |0012FFA0
0012FFC0  |00000000
0012FFC4  |FFFFFFFF  SEH 链尾部
0012FFC8  |76F2E0ED  SE处理程序
0012FFCC  |011BB90B
0012FFD0  |00000000
0012FFD4  \0012FFEC
0012FFD8   76F737C8  返回到 ntdll.76F737C8 来自 ntdll.76F737CE
0012FFDC   004711DA  offset 演示程序.<ModuleEntryPoint>
0012FFE0   7FFDE000
0012FFE4   00000000
0012FFE8   00000000
0012FFEC   00000000
0012FFF0   00000000
0012FFF4   004711DA  offset 演示程序.<ModuleEntryPoint>
0012FFF8   7FFDE000
0012FFFC   00000000

从下往上,找到第一个返回到程序领空的地址。0012FF74   0044EDA0  演示程序.0044EDA0,
然后汇编窗口中跟随,
来到这里
0044ED9F      FF            db FF
0044EDA0      E8            db E8
0044EDA1      7B            db 7B                                    ;  CHAR '{'
0044EDA2      4F            db 4F                                    ;  CHAR 'O'
0044EDA3      FB            db FB
0044EDA4      FF            db FF
0044EDA5      8D            db 8D
0044EDA6      40            db 40                                    ;  CHAR '@'
0044EDA7      00            db 00
0044EDA8      00            db 00
0044EDA9      00            db 00
0044EDAA      00            db 00
0044EDAB      00            db 00
0044EDAC      00            db 00
0044EDAD      00            db 00
0044EDAE      00            db 00
0044EDAF      00            db 00

3. 点右键,选择分析-->从模块中删除分析,变成这样
0044ED55   /EB 44           jmp X演示程序.0044ED9B
0044ED57   |0000            add byte ptr ds:[eax],al
0044ED59   |0000            add byte ptr ds:[eax],al
0044ED5B   |0058 EB         add byte ptr ds:[eax-0x15],bl
0044ED5E   |44              inc esp
0044ED5F   |0055 8B         add byte ptr ss:[ebp-0x75],dl
0044ED62   |EC              in al,dx
0044ED63   |83C4 F0         add esp,-0x10
0044ED66   |B8 80EB4400     mov eax,演示程序.0044EB80
0044ED6B   |E8 586EFBFF     call 演示程序.00405BC8
0044ED70   |A1 D0FF4400     mov eax,dword ptr ds:[0x44FFD0]
0044ED75   |8B00            mov eax,dword ptr ds:[eax]
0044ED77   |E8 F8E5FFFF     call 演示程序.0044D374
0044ED7C   |8B0D AC004500   mov ecx,dword ptr ds:[0x4500AC]          ; 演示程序.00451BD0
0044ED82   |A1 D0FF4400     mov eax,dword ptr ds:[0x44FFD0]
0044ED87   |8B00            mov eax,dword ptr ds:[eax]
0044ED89   |8B15 14E94400   mov edx,dword ptr ds:[0x44E914]          ; 演示程序.0044E960
0044ED8F   |E8 F8E5FFFF     call 演示程序.0044D38C
0044ED94   |A1 D0FF4400     mov eax,dword ptr ds:[0x44FFD0]
0044ED99   |8B00            mov eax,dword ptr ds:[eax]
0044ED9B   \E8 6CE6FFFF     call 演示程序.0044D40C
0044EDA0    E8 7B4FFBFF     call 演示程序.00403D20

这里就是OEP的头部了。如果你熟悉各种语言的入口特征的话,马上就应该知道OEP的位置了。
看这里
0044ED5F   |0055 8B         add byte ptr ss:[ebp-0x75],dl
0044ED62   |EC              in al,dx
其实这个就是被混淆了的OEP。他只是在558B的前面加了个00,  我们想办法把00去掉。
00的地址是0044ED5F,那么55的地址是0044ED60,我们CTRL+G,输入0044ED60,回车。我们的OEP就回来了,如下:
0044ED60    55              push ebp
0044ED61    8BEC            mov ebp,esp
0044ED63    83C4 F0         add esp,-0x10
0044ED66    B8 80EB4400     mov eax,演示程序.0044EB80
0044ED6B    E8 586EFBFF     call 演示程序.00405BC8
0044ED70    A1 D0FF4400     mov eax,dword ptr ds:[0x44FFD0]
0044ED75    8B00            mov eax,dword ptr ds:[eax]
0044ED77    E8 F8E5FFFF     call 演示程序.0044D374
0044ED7C    8B0D AC004500   mov ecx,dword ptr ds:[0x4500AC]          ; 演示程序.00451BD0
0044ED82    A1 D0FF4400     mov eax,dword ptr ds:[0x44FFD0]


OEP就这样被找到了,这个方法是可以秒到所有壳的OEP的,只要你的OD能够让程序跑起来。
演示程序3.zp.rar (415.95 KB, 下载次数: 4245)







      
      

点评

七八年前就看过的文章!  发表于 2012-9-8 22:07
其实 只要看了小生哥的视频都知道这种方法 不过他不是通过看堆栈 而是直接在内存里找的 对于Tmd和Wl 视频里有演示  发表于 2012-4-10 18:31

免费评分

参与人数 11吾爱币 +1 热心值 +11 收起 理由
海天一色001 + 1 + 1 谢谢@Thanks!
开悟诚明 + 1 我很赞同!
拓海真一 + 1 谢谢@Thanks!
jiangweiaina + 1 http://115.com/file/e6t7t8hy#帮看看VMP的
lcylcyll + 1 非常有用。。。。
aiwanqq + 1 有空试试
f1241556 + 1 吾爱有你更精彩
c2232888 + 1 有空试试其他壳
热火朝天 + 1 精品文章!
qzy0549 + 1 谢谢分享!!!!
小小菜 + 1 非常有用。。。。

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

aopo001 发表于 2011-11-15 13:56
没钱了;
310608900 发表于 2011-11-15 13:56
VMP的壳也可以??

点评

只要不被反调试  发表于 2012-4-8 00:50
异想天开  发表于 2011-11-15 13:57
9月° 发表于 2011-11-15 13:49
支持一下  万一火了呢。

点评

神回复啊。。。  发表于 2012-12-7 08:31
O_o
太尼玛有先见之明了  发表于 2012-7-14 17:38
 楼主| yangand 发表于 2011-11-15 14:01
回复 310608900 的帖子

VMP也可以。。。
等待奇迹 发表于 2011-11-15 14:10
好教程,学习学习
qq20036 发表于 2011-11-15 14:14
额 去试试  这么强悍
沉默 发表于 2011-11-15 14:19
VMP都可以那就神器了
bob123 发表于 2011-11-15 14:27
1.真心感谢楼主热心分享心得。
2.简直就是奇思妙想啊,这心得也太坑跌了吧。
3.与其这样做,那么断程序调用的第一个api岂不是更简单?
rainisa 发表于 2011-11-15 14:29
本帖最后由 rainisa 于 2011-11-15 14:39 编辑

找个VMP的程序试一下就知道。
估计我的OD不行,试了几个版本都是程序直接运行了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-20 00:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表