社区
汇编语言
帖子详情
如何从exe反汇编后的汇编代码中查找函数地址?
jolley
2008-03-20 02:26:54
如题目所说,我将应用程序的exe执行文件反汇编成汇编语言了,共有22M之多,那么要看这么多的汇编代码,大家有什么好方法呢?并且如何从汇编代码里面看出函数地址呢?
先谢谢大家了,请大家多给建议呀。
...全文
787
8
打赏
收藏
如何从exe反汇编后的汇编代码中查找函数地址?
如题目所说,我将应用程序的exe执行文件反汇编成汇编语言了,共有22M之多,那么要看这么多的汇编代码,大家有什么好方法呢?并且如何从汇编代码里面看出函数地址呢? 先谢谢大家了,请大家多给建议呀。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
czlyc006
2008-03-22
打赏
举报
回复
动态调试,勤下断点
lumin824
2008-03-22
打赏
举报
回复
你要找的那个函数可能要调用哪些API,用OD在那个API上下断点,调试,从调用堆栈中找函数地址
「已注销」
2008-03-21
打赏
举报
回复
W32DASM是静态工具,用OD吧,动态调试,根据需要设置断点,就可以找到自己需要的地址.
记得好象还要相对虚拟地址和文件地址转换一下.
EXE里面的输入表一般只是引入的系统API信息,不包括自己的函数.
jolley
2008-03-21
打赏
举报
回复
[Quote=引用 4 楼 cnzdgs 的回复:]
搜索PROC
[/Quote]
能说得更加具体点么?或者能举个例子么?谢谢:)
cnzdgs
2008-03-20
打赏
举报
回复
搜索PROC
大熊猫侯佩
2008-03-20
打赏
举报
回复
先从简单的练习,没有人一下子就成了逆向高手。
用户 昵称
2008-03-20
打赏
举报
回复
难,俺也反汇编过,比如java虚拟机的dll,看了半天没头绪。
jolley
2008-03-20
打赏
举报
回复
我刚才用W32DASM反汇编工具获得了反汇编后的代码,但是从其导入项来说,只含有应用程序包含的DLL对应函数地址,而对于程序员依赖DLL编制的函数(比如程序员自己编写的程序代码,非DLL中接口函数代码)地址却不可以找到,难道说W32DASM只能识别EXE所关联DLL里面的函数?
或者是大家还有没有什么好的方法来解决这种问题?
[系统安全]
反
汇编
-
函数
调用约定、Main
函数
查找
fun_b()
函数
是fastcall调用,参数是由ECX与EDX这两个寄存器完成的,超出部分的参数依然采用压栈方式传递。C++使用naked标识创建的裸
函数
将不包含任何用户
代码
以外的指令,即便是
函数
末尾的retn也要用户自己来实现。并不是所有的
函数
都只有用call指令才能调用,使用lea、push加jmp的组合也可以达到相同的目的。fun_a()
函数
是cdecl调用,所以没有堆栈平衡,由调用者main()
函数
进行堆栈平衡。main()
函数
其实是有3个参数的,这取决于Windows系统的机制。
如何构建
反
汇编
代码
?
大型的非结构化
反
汇编
指令堆几乎不可能被分析,所以大多数
反
汇编
工具都会以某种简单的分析方法来构造
反
汇编
代码
。在本节
中
,我们将会讨论通过
反
汇编
工具恢复的通用
代码
和数据结构,以及这些通用
代码
和数据结构会如何帮助我们进行二进制分析。 6.3.1 构建
代码
首先,我们来看一下构建
反
汇编
代码
的各种方法。笼统地说我将向你展示两种使得
代码
更易于分析的
代码
结构。 (1)分块:将
代码
分成逻辑连接的块,可以更轻松地分析每个块的功能和
代码
块之间的关系。 (2)揭示控制流:接下来讨论的这种
代码
结构不仅表达了
代码
自身,还很直观
Python
反
汇编
与ROP构建
代码
通过利用
反
汇编
库,并使用python编写工具,读取PE结构
中
的基
地址
偏移
地址
,找到OEP并计算成FOA文件偏移,使用
反
汇编
库对其进行
反
汇编
,并从
反
汇编
代码
里
查找
事先准备好的ROP绕过
代码
,让其自动完成搜索。通过读取指定进程的所有内置模块,依次验证其是否存在没有开启保护的模块,然后讲这些模块的
地址
存储到变量里,然后利用
反
汇编
工具对其进行全文
反
汇编
,并找出需要构造的ROP绕过片段,最后将其首
地址
取出来,组合成ROP链条即可。哈哈哈,组合拳,一套连招,啪啪啪,找出程序
中
脆弱模块。
查找
指令片段,坑司机版。
查看Ubuntu Linux内核
函数
反
汇编
代码
说明:本文单纯为快捷记录操作方法之用,没有解释技术细节,如果想了解具体原理请另寻其他资料。 内核是构成计算机操作系统核心的程序。它是在计算机启动(即启动)时首先加载到内存(物理上由RAM芯片组成)的内容,并且在计算机运行的整个过程
中
它都保留在内存
中
。 Linux内核源码编译结束后生成的文件为vmlinux,这是一个ELF可执行文件,可以被
反
汇编
。但不可以被引导。 vmlinuz是vmlinux经过压缩后生成的可引导可执行文件。可引导意味着它能够将操作系统加载到内存
中
,以便计算机变得可用并且可以运行.
CD64.【C++ Dev】多态(3):
反
汇编
剖析单继承下的虚
函数
表
VS调试分析C++虚
函数
表的实现机制。主要内容包括:1)配置VS项目关闭安全检查和调试优化;2)在Debug+x86模式下编译包含虚
函数
的继承示例
代码
;3)通过
反
汇编
详细分析构造
函数
初始化虚表指针的过程、多态调用的底层实现(通过ecx传递this指针,edx存储虚表指针)以及析构
函数
的调用顺序;4)总结关键点:编译期间确定虚表
地址
、构造/析构
函数
的调用顺序、多态调用的寄存器使用约定。文章结合
汇编
指令和内存变化,深入解析了C++虚
函数
机制的底层实现原理。
汇编语言
21,499
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章