520Kelly 发表于 2014-4-1 13:50

【致新手】小解关于领空的问题

本帖最后由 520Kelly 于 2014-4-1 13:52 编辑

很多新手菜鸟 都会问的一个问题 就是领空、、

那到底什么是领空呢?

我这里给大家简单介绍下:领空就是一个模块的范围 相当于一个人拥有的一块地方 这个地方的大小之内 假设是10平方米 那么10平方米之内 就是这个人的

领空 简简单单好理解

那么 知道领空有什么意义呢?比如说脱壳、、通常 一个壳加在一个程序上面 他也会有自己的领空、、(反正意思能理解就行 我也胡乱说的)

然后我们要找入口点 即OEP 那就要去程序的领空 而不是壳的领空 (菜鸟不懂是不是真的有壳的领空这个概念 就是觉得易懂就好)

那么 如何识别当前地址所在的领空呢?我在这突然想到的、、

我们来看图:


很显然这是一个易语言程序的OEP 地址为00447271

然后我们Alt+M 来到这里


大家看 第一个区段 从PE文件头那里开始算起 地址是00400000 再看到结尾 资源那里为止 地址为00DD9000 大小为6000

然后我们计算下程序的领空范围的大小 用最后的地址 减去 最初始的地址 即00DD9000+6000-00400000 结果等于9DF000

这里解释下为什么要用最后的地址+6000 因为00DD9000下面那个地址00DE0000 他不是程序领空的最后地址 所以这个地址不能算进去

+6000以后 算出来的是程序领空的最后地址 所以减去初始地址 算出来的是9DF000 大家也可以用1000+65000+954000+1F000+6000 算出来的结果

是和我们这个值相等的 很简单的一个计算、、9DF000这个范围 就属于程序的领空 即从00400000到00DD9000 都算做程序领空、、

为方便大家看 我们Alt+E 看模块

和我们计算的是一样的 这个大小 是属于这个exe的 如果你找的OEP 不属于这个00400000到00DD9000 这个范围 那么很有可能你就找错了

然后 我们会说 易语言非独立编译 他的按钮事件地址要去10001000找、、是这样的 他的按钮事件 在krnln.fnr这里面 这个我不知道他叫什么 我暂且叫

模块吧 按钮事件和OEP 是两个不同的概念 大家不能混淆了、、按钮事件这个问题、、表示确实没想到、、

至于壳的领空 表示分析不懂、、这个问题我就不知道了、、坐等大神解答 哇咔咔 膜拜我B牛秒还原VM 秒破Nx(Brack大神)

520Kelly 发表于 2014-4-1 20:11

Hslim 发表于 2014-4-1 17:07
“很显然这是一个易语言程序的OEP 地址为00447271”这个显然在哪儿呀 ?是不是因为载入的地址是这个,所 ...

没加壳的 所以是OEP 加了壳OEP肯定会变的、、至于如何识别加壳没有、、我想这个问题我还是不回答了、、这个都看不出来我想还是多补点课

Hslim 发表于 2014-4-1 17:07

“很显然这是一个易语言程序的OEP 地址为00447271”这个显然在哪儿呀 ?是不是因为载入的地址是这个,所以就是oep呢

无邪 发表于 2014-4-1 13:52

膜拜一下格盘大大
我也是最近才明白领空的概念..

3954385 发表于 2014-4-1 14:14

在系统领空找到关键call之后怎么返回程序领空

mf88267165 发表于 2014-4-1 14:16

你们在说什么 我的天呀{:1_924:}

247605832 发表于 2014-4-1 14:16

支持K大,确实很适合新手 可行今天没分了 不然给K大去

loveliuhao323 发表于 2014-4-1 14:21

学习了!!

鬼圈 发表于 2014-4-1 14:38

{:301_1008:}文盲飘过。。。

Ctrui 发表于 2014-4-1 17:22

学习一下,受教了{:301_1003:}
页: [1] 2
查看完整版本: 【致新手】小解关于领空的问题