od堆栈调用时那么多函数怎么知道那条是需要的 还有怎么分辨程序领空和系统领空

od堆栈调用时那么多函数怎么知道那条是需要的 还有怎么分辨程序领空和系统领空,第1张

结合反汇编窗口的数据结构。以及数据窗口的跟随。还要寄存器窗口的变化。来判断是不是你需要的。

堆栈窗口存储了重要的数据地址。可以再想看的那一条堆栈用反汇编窗口跟随。来查看它的上下结构。用数据窗口跟随。查看其数据。比如关键码。账号密码。注册码之类。有时候能查看到。有时候堆栈反复入栈出栈在寄存器上能看到其地址送入了哪个寄存器。得知某些地址经常使用。关键处可能在那。

不过总的来说。LZ的基础太差了。你一句话哪个函数是需要的。我得说明很多。因为问题很广。仅仅一个广阔的问题。包涵了几十个要点。甚至包括几十个问题。还要多看书。我基本功也很不扎实。

分辨程序领空最简单的办法就是00XXXXXX地址很大可能是程序领空。如果是7FXXXXXX这一类的就是系统领空。有时候OD上标题显示你程序的名称。这时你所在的地址是程序领空。还有就是。其它OD标题上出现类似函数的字母。或者XXXXDLL表示你目前在系统领空。

以上2点。教程和书上介绍写的很清楚。而且还有。不过堆栈的话。还要狠了解函数。牵扯到win32下编程函数。楼主至少要看懂汇编语言和win32下编程2本书。还要熟练运用OD。经常看看经验贴。相信你不会再问OD的事情了。

方法一 : 再点击内存在第三列(属主)中找你所调试的进程名所对应的地址,凡是进程名所对应的地址都是程序的领空方法二:查看OD的标题栏 上面标示的是[CPU-主线程,模块-进程名]那就代表你所看到的代码处于程序的领空

OD是optical density(光密度)的缩写,表示被检测物吸收掉的光密度,计算公式为OD=log10(入射光/透射光)或OD=log10(1/透光率)或OD=1og(1/trans),其中trans为检测物的透光值\x0d光密度的定义是:入射光强度与透射光强度之比值的常用对数值专业书籍则这样解释“吸光度”:入射光和透射光的透过率之比值的常用对数值,也称光密度分析可见,两个概念其实是一致的,“光密度”就是“吸光度”,且用“光密度”符合国家标准,更规范\x0d吸光度,absorbance,是指光线通过溶液或某一物质前的入射光强度与该光线通过溶液或物质后的透射光强度比值的对数,影响它的因素有溶剂、浓度、温度等等吸光系数与入射光的波长以及被光通过的物质有关只要光的波长被固定下来,同一种物质,吸光系数就不变当一束光通过一个吸光物质(通常为溶液)时,溶质吸收了光能,光的强度减弱吸光度就是用来衡量光被吸收程度的一个物理量\x0d吸光度用A表示 A=abc,其中a为吸光系数,单位L/(g·cm),b为液层厚度(通常为比色皿的厚度),单位cm , c为溶液浓度,单位g/L 影响吸光度的因数是b和ca是与溶质有关的一个常量此外,温度通过影响c,而影响A

常见脱壳知识:1PUSHAD (压栈) 代表程序的入口点

2POPAD (出栈) 代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近拉!

3OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP),

只要我们找到程序真正的OEP,就可以立刻脱壳。

开始正式介绍方法啦!!

方法一:

1用OD载入,不分析代码!

2单步向下跟踪F8,是向下跳的让它实现

3遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——运行到所选)

4绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!

5如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,这样很快就能到程序的OEP

6在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入

7一般有很大的跳转,比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETE的一般很快就会到程序的OEP。

方法二:

ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)

1开始就点F8,注意观察OD右上角的寄存器中ESP有没出现。

2在命令行下:dd 0012FFA4(指在当前代码中的ESP地址),按回车!

3选种下断的地址,下硬件访问WORD断点。

4按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP,脱壳

方法三:

内存跟踪:

1:用OD打开软件!

2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序!

3:按ALT+M,DA 打开内存镜象,找到第一个rsrc按F2下断点,

然后按SHIFT+F9运行到断点,接着再按ALT+M,DA 打开内存镜象,找到RSRC上面的CODE,按

F2下断点!然后按SHIFT+F9,直接到达程序OEP,脱壳!

方法四:

一步到达OEP(前辈们总结的经验)

1开始按Ctrl+F,输入:popad(只适合少数壳,包括ASPACK壳),然后按下F2,F9运行到此处

2来到大跳转处,点下F8,脱壳之!

方法五:

1:用OD打开软件!

2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序!

3:一开是程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按F9到程序

运行的次数!

4:CTRL+F2重载程序,按SHIFT+F9(次数为程序运行的次数-1次

5:在OD的右下角我们看见有一个SE 句柄,这时我们按CTRL+G,输入SE 句柄前的地址!

6:按F2下断点!然后按SHIFT+F9来到断点处!

7:去掉断点,按F8慢慢向下走!

8:到达程序的OEP,脱壳

以上就是关于od堆栈调用时那么多函数怎么知道那条是需要的 还有怎么分辨程序领空和系统领空全部的内容,包括:od堆栈调用时那么多函数怎么知道那条是需要的 还有怎么分辨程序领空和系统领空、怎么判断od是否进入程序领空、光吸收值,用OD 值或A值表示有什么不同等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10118800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存