od 分析dll函数

如何查看dllinside函数,什么工具可以监控dll file 函数调用和传递参数?微软有一个工具叫dependencywalker或者VisualStudio自带的工具 。dumpbin可以查看dll/name的导出,函数参数和调用方法(如__cdecl或__stdcall)无法在工具中显示,你需要用IDA或OllyDbg等反汇编器反汇编DLL,通过定位函数末尾的retn指令来判断参数个数和调用方法 。

1、如何查看DLL中的 函数原型在原型中找不到,但是在stdcall调用时可以看到它的参数个数 。函数后面跟一个@nnn , 是数字,nnn/sizeof(机字)是参数个数 。原型不知道 。不过函数这个名字可以看出来 。Reflector,可以破解C#开发的程序 。可以试试 。我不能检查它 。它是密封的 。有三个主要工具 。1.dumpbin是VC自带的 , 用法如下:dumpbin/exportsmpft80 。dll 2.可以查看依赖关系 。3.可以用IDA反汇编工具查看,加载需要的dll按F5查看 。

2、如何查看DLL中的 函数名及参数看参数和返回值是不可能的,因为参数和返回值的类型不一定是基本类型,也可能是类、结构等 。这些复合类型是不可预测的,因此DLL不可能导出参数和返回值 。想要看到一个导出的函数的参数,只能看相关的API文档 , 没有别的办法 。但是查看导出的函数 name是可以的,因为我们需要一个标识符来查找某个函数的入口地址 。当然也有一些DLL导出函数看不到函数 name , 那是因为DLL的发布 。

但是对于参数,就像楼上说的,它的真实数据类型(也就是高级语言中的抽象数据类型)是看不到的 。因为都编译成一个程序集,没有抽象的概念,此时只能知道数据大小 。但是,不代表没有办法 。有一个软件叫IDA,专门用于静态分析 。它可以反编译汇编C的伪代码,从而大致知道什么是传入和传出 。如果再了解一下函数的功能,只要不是太复杂,那么分析的输出参数的类型问题不大 。

3、 od堆栈调用时那么多 函数怎么知道那条是需要的??还有怎么分辨程序领空和...【od 分析dll函数】组合反汇编窗口的数据结构 。和下面的数据窗口 。还包括寄存器窗口的变化 。看看这是不是你需要的 。堆栈窗口存储重要的数据地址 。反汇编窗口后面是您希望再次看到的堆栈 。来看看它的上下结构 。接着是数据窗口 。查看其数据 。比如关键代码 。账号密码 。注册码什么的 。有时候可以看到 。有时候堆栈反复进出堆栈 , 你可以在寄存器上看到它的地址发送到哪个寄存器 。

    推荐阅读