能力值:
(RANK:350 )
|
-
-
2 楼
这个实质应该是“堆栈平衡原理”。
看雪论坛最早将这原理应用脱壳的,当属fs0。
标 题:loader找OEP的原理 (757字) 发信人:fs0 时 间:2002-4-6 16:39:15 详细信息:
loader通过读取被加壳程序startup时的Ebp, Esp, [Esp]值跟 该程序运行到一定地址时Ebp, Esp, [Esp]的值比较,若相等则认为该地址就是OEP。目前只对Asprotect 1.2x有效。
那么我们应该在哪里停下被加壳程序去读值,而该地址又不是OEP的上一或下一地址呢。 Windows 有一API VirtualProtectEx,用来设置内存空间的某些属性,在NT下可以设上 PAGE_GUARD属性,若程序读、写、执行设了PAGE_GUARD属性的内存,就会产生一 STATUS_GUARD_PAGE_VIOLATION的异常,我们就可以利用该特性,给被加密了的程序代码 空间(我只是简单的把第一个Section认为是代码段)加上PAGE_GUARD属性,要是被加壳 程序运行该保护段的代码,而且Ebp, Esp, [Esp]跟startup时的值相等则认为该地址就是OEP。
理论上该方法可以应用到其他大多数的加壳方法上,Armadillo当然是例外(: 那么为什么该loader不能用在Aspack、upx、PECompact....上?现在什么都懒了,懒啊!!
-------------------------------------------------------------------------------- 标 题:“普通程序执行前ebp指向哪里”这个问题比较专业,我也不太清楚... (334字) 发信人:fs0 时 间:2002-4-7 21:23:50 阅读次数:42 详细信息:
“普通程序执行前ebp指向哪里”这个问题比较专业,我也不太清楚。 在不能十分肯定破坏被加壳程序的ebp和esp对程序有什么影响前,我想通用的加壳软件并不会贸然行事, 至少现时大多数加壳软件到达OEP时会恢复ebp, esp的值,之后的事由加壳软件的作者去想吧。 我用的是调试的方法,也初步想了一下如何反被检测到的方法,得等见到有加壳程序反调试后再加上去。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
私底下这东东,早就有了
|
能力值:
( LV12,RANK:660 )
|
-
-
4 楼
据我所知,最早总结出来的应该是FLY大侠。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
"ESP定律"这个词是FLY给出的.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
|
能力值:
( LV8,RANK:130 )
|
-
-
7 楼
这个原理就不知道,但是这个叫法是fly第一个提出的吧
|
能力值:
( LV9,RANK:1250 )
|
-
-
8 楼
就我看到的文章,我认为“ESP定律”是由fly大侠提出的。
应用到Asprotect老版本,upx,aspack都可以。
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
ESP定律的总结,说实在的真是方便了像我这样的好多菜鸟们,学手脱刚开始是一步步走下去,直到入口点,现在对压缩壳一步直达,方便不少。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
可能 解放时期就有了 不过有 一直没人发表 没人公布 嘎嘎
|
能力值:
( LV9,RANK:210 )
|
-
-
11 楼
|
能力值:
( LV8,RANK:130 )
|
-
-
12 楼
|
能力值:
(RANK:1060 )
|
-
-
13 楼
最早使用估计有一定经验的cracker都有使用的经历
最早应用在fs0的loader里
最早名字是fly起的
|
能力值:
( LV9,RANK:140 )
|
-
-
14 楼
FLY大哥~~~~
|
|
|