能力值:
( LV2,RANK:10 )
|
-
-
2 楼
好累呀..那种无助啊...
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
找OEP用来脱壳
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
加壳程序需要还原自己,当然在内存中了;一旦它运行到OEP的时候,也就是在内存中完全重现没加壳时候的状态了,这时候dump出来就是没加壳的程序了,长度不用你管,程序自己有定义的。
大虾们见笑了,我乱说的。。。。。
|
能力值:
( LV12,RANK:200 )
|
-
-
5 楼
解释:OEP是软件的原始入口点
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我的理解是:
无壳程序的内存:
--------------(无壳程序的内存)----
MZ头
程序code
...
--------------(无壳程序的内存)----
有壳程序的内存(解码前):
--------------(有壳程序的内存)----
MZ头(加壳程序改过)
加密后的原程序code(重点)
解码code
...
--------------(有壳程序的内存)----
有壳程序的内存(解码后):
--------------(有壳程序的内存)----
MZ头(加壳程序改过)
原程序code(重点)
解码code
...
--------------(有壳程序的内存)----
程序的"目录"就是"MZ头"
加壳程序在"MZ头"中除了"入口偏移"以外可能会改的是:"输入表""区段表"
这两个 lordPE 会修改好.
所以脱壳后程序的内存:
--------------(脱壳后程序的内存)----
MZ头(脱壳程序改过)
原程序code(重点)
解码code(以没用)
...
--------------(脱壳后程序的内存)----
OEP就是内存中(解码后)"原程序code"的内存地址
代码长度保存在"MZ头"中(自己都晕了! )
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
呵呵 学习学习
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
“脱”就一个字
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
可能就是在这种声音中长大...........
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
OK,其实我明白 OEP 是 original entry point
是程序真正的入口点
可是从用来 dump 的程序和插件没让输入OEP的地址,那我要找它干嘛?
什么时候运行 dump 程序又有什么区别呢? 除非你得把你找到的 OEP 告诉它,让他从那开始 dump
可是lordPE就一个右键->完整dump,就完成了,那我OEP不就白找了?
|
能力值:
(RANK:990 )
|
-
-
11 楼
先看一下Lenus的这篇文章:
http://bbs.pediy.com/showthread.php?threadid=17624
另外你dump的程序没修正OEP能运行吗?如果在importRec中采用自动查找输入表时没输入OEP能得到正确的输入表吗?如果是Delphi程序,让程序运行起来再dump,你看看bss段的数据是空的吗?如果是VC的程序,程序运行起来再dump,.data段的数据和从OEP开始dump一样吗?
如果我是你,对这个有疑问,我就把一个程序分别从OEP处dump和让程序运行起来再dump,一比较两个dump后的文件不就明白了吗?遇到什么问题不是先问,先动手做一下,比你去问人而理解要深刻的多。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
正是由于看不懂,所以才问,有错吗?思考的不够确实是我的错,但我只是想少走一点弯路
"让我把他在oep处dump下来
嘿嘿,dump下来才发现,图表都没有了。"
这是他的帖子里面的原话,那么怎么叫做"在oep处dump下来"?过程没说
既然是教连dump是什么都不知道的人脱壳,这些细节的过程怎么就省略了呢?
我不是怪作者写得不够详细,而是我确实不知道
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
红警,你要注意点了,各个论坛学习的风气不一样,我就曾经被别人严重的批评过,还是语气再客气点吧。
你要让程序运行到OEP,这样dump出来的才是程序“刚刚”脱完衣服的状态,才是我们需要的“脱过”的程序呀!并且在修复资源的时候也要oep,否则无法修复的。
|
能力值:
(RANK:350 )
|
-
-
14 楼
一般来说,建议到OEP再Dump,是因为这时原程序还没执行,一些环境变量还没初始化,此时Dump能保持程序主要结构和加壳前一至。
当然如果你熟悉某种壳,并不一定要到OEP才Dump,例如Aspack,外壳将数据解压后,此时内存镜像和加壳前几乎一样,可以直接Dump。
也就是说,建议到OEP处Dump是一个通则,能适用大部分情况。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
多谢各位,我继续努力......
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
OEP是一个很有用的东西,在楼上说了很多.我想起了它的另一个用途.
有不少软件都隐藏了自己的ASCII等关键字符
OD载入后,如果搜索ASCII什么都没有找到(非VB code 程序)
大家就F8单步
跟进一个程序的CALL后 再搜索ASCII
另一种在真正OEP之前添加了些东西,但还不是壳.(强度太小)
(强烈同意11楼的意见:以后遇见这些问题先考虑自己理解,在看别人的理解.)
|
能力值:
( LV12,RANK:200 )
|
-
-
17 楼
脱壳。找到OEP就等于找到你家的门钥匙
|
|
|