【致新手】小解关于领空的问题
本帖最后由 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大神)
Hslim 发表于 2014-4-1 17:07
“很显然这是一个易语言程序的OEP 地址为00447271”这个显然在哪儿呀 ?是不是因为载入的地址是这个,所 ...
没加壳的 所以是OEP 加了壳OEP肯定会变的、、至于如何识别加壳没有、、我想这个问题我还是不回答了、、这个都看不出来我想还是多补点课 “很显然这是一个易语言程序的OEP 地址为00447271”这个显然在哪儿呀 ?是不是因为载入的地址是这个,所以就是oep呢
膜拜一下格盘大大
我也是最近才明白领空的概念.. 在系统领空找到关键call之后怎么返回程序领空 你们在说什么 我的天呀{:1_924:} 支持K大,确实很适合新手 可行今天没分了 不然给K大去 学习了!! {:301_1008:}文盲飘过。。。 学习一下,受教了{:301_1003:}
页:
[1]
2