首页
社区
课程
招聘
寻地址在这一步骤卡住了,附图求老师讲解一二。。
发表于: 2012-1-6 18:45 3938

寻地址在这一步骤卡住了,附图求老师讲解一二。。

2012-1-6 18:45
3938
以下图片为OD所载的图片,有几个疑点想咨询各位老师,




以上图片中,堆栈找到了CALL  是[Call  069D1758] call附带一了个参数。
本次发帖主要问题是如何找到这个Call的固定地址。

我的问题如下:
1.图中的 [SE 句柄安装]进程加载模块后释放的句柄吗?这个是固定的吗。
2.图中的寄存器[ESI 00409F64] 这个跟[SE 句柄安装]是什么关系的,这个ESI是固定的吗。
3.从堆栈中找到的 [Call  069D1758] 这个地址我知道不是固定的,如何通过偏移准确找到这个每一次换电脑都会变动的地址呢。

老师们给指点一二吧,这个问题卡了我好久了。

以下是这个Dll文件的PE段 - -

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1737
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这些问题需要了解windows可执行文件PE格式,还是先看一些比较基础的教程吧~~
2012-1-6 18:54
0
雪    币: 34
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
1.结构化异常是由编译器自动生成的代码。程序中有一个异常链表,由FS寄存器指向。
2.ESI不是固定的,由编译器决定,不同的编译器会用到不同的寄存器。
3.这个call的地址是固定的(如果你的程序代码不变)。因为你可能没有注意到call那句的机器码和下一句指令的EIP值.call后面跟的地址有需要重定位的和不需要重定位的,用重定位的是用od看有一条下划线的数据,这一般都不是自己写的函数(例如用dll的导出函数)。不需要重定位的情况下,你用call后边的数据加上call下一条指令就是call过去的地址(od显示的函数地址)。这就相当于调用函数距离call的偏移,当然是写死的了。

推荐你看:《加密与解密(第三版)》的PE结构和SEH的部分。看完了这些你就自然明白了。
2012-1-6 19:49
0
雪    币: 61
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
自己搞定了。。。。。。
2012-1-7 03:55
0
游客
登录 | 注册 方可回帖
返回
//