社区
进程/线程/DLL
帖子详情
请问有什么办法或者工具可以获得DLL文件中的导出的函数的原型
GrayMole2010
2010-05-13 07:07:21
不只是导出函数的符号,需要知道函数的参数与返回值。谢谢。
...全文
325
12
打赏
收藏
请问有什么办法或者工具可以获得DLL文件中的导出的函数的原型
不只是导出函数的符号,需要知道函数的参数与返回值。谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
哈利路亚1874
2010-05-16
打赏
举报
回复
[Quote=引用 5 楼 wangli820 的回复:]
如果是C命名方式导出的,只能反汇编分析
如果是C++命名方式导出的,可以用VS自带的工具,undname.exe解析出部分原函数参数,在X:\Program Files\Microsoft Visual Studio 9.0\VC\bin
[/Quote]
这两楼顶一下,是可行的……
尹成
2010-05-16
打赏
举报
回复
理论上是不行的。编译得到的EXE和DLL(在Linux中是so)最多可以反编译成汇编语句序列。而对于这些可执行文件,对它们中的函数或过程的调用已经转换成最基本的入口点的跳转和执行后的返回(还是跳转,并将结果直接或间接存储在寄存器中),这也就是为什么最多能解析得到例程名称的原因。事实上,不同的编程语言、同一种编程语言的不同源代码,都有可能最终编译成一样的可执行文件。也就是说,源代码、二进制文件、可执行文件,这三类文件的产生顺序是不可逆的。你甚至可以反过来想,如果你的愿望实现了,那么软件版权意义何在?源代码的意义何在?如果可以解析得到,那么微软费那么大劲编写SDK干吗?(我还希望直接调用操作系统中的DLL呢,可惜最后还是回到了SDK。)
ilovejanx
2010-05-14
打赏
举报
回复
反汇编看看,调试下就更清楚了
visualassist4680
2010-05-14
打赏
举报
回复
反汇编,看调用栈
wmswxpmyl
2010-05-14
打赏
举报
回复
学习学习!!!!!!!!!!!!!!
MoXiaoRab
2010-05-14
打赏
举报
回复
楼上说的是对的。
wangli820
2010-05-14
打赏
举报
回复
如果是C命名方式导出的,只能反汇编分析
如果是C++命名方式导出的,可以用VS自带的工具,undname.exe解析出部分原函数参数,在X:\Program Files\Microsoft Visual Studio 9.0\VC\bin
iihero_
2010-05-14
打赏
举报
回复
[Quote=引用楼主 graymole2010 的回复:]
不只是导出函数的符号,需要知道函数的参数与返回值。谢谢。
[/Quote]
一般来说,dll都有对应的头文件之类的给二次开发者。这样,用户可以进行开发。如果没有对应的lib文件,可以根据dll文件生成对应的lib文件。这些都是没有问题的。也能生成对应的def文件。
你妹的特盗不
2010-05-14
打赏
举报
回复
mark
sjdev
2010-05-13
打赏
举报
回复
没有好办法,谁写的找谁要去。
mcaok
2010-05-13
打赏
举报
回复
逆向。IDA反汇编F5.例如:
.text:10001510 public SetAPIHook
.text:10001510 SetAPIHook proc near ; DATA XREF: .rdata:off_10012228o
.text:10001510
.text:10001510 arg_0 = dword ptr 4
.text:10001510
.text:10001510 mov eax, hmod
.text:10001515 push 0 ; dwThreadId
.text:10001517 push eax ; hmod
.text:10001518 push offset sub_100013F0 ; lpfn
.text:1000151D push 4 ; idHook
.text:1000151F call ds:SetWindowsHookExA
.text:10001525 mov ecx, [esp+arg_0]
.text:10001529 xor edx, edx
.text:1000152B test eax, eax
.text:1000152D setnz dl
.text:10001530 mov dword_100161BC, eax
.text:10001535 mov ds:hWnd, ecx
.text:1000153B mov eax, edx
.text:1000153D retn
.text:1000153D SetAPIHook endp
有一个参数,反回值应为BOOL型。所以
可以得出原型为
bool SetAPIHook(HWND arg_0);
快乐鹦鹉
2010-05-13
打赏
举报
回复
http://www.java2000.net/todoshow.jsp?id=174802
so2lib实用
工具
(把cygwin生成的so或
dll
转换成vc可调用的lib)
// so2lib.cpp : create a lib export table for vc by
dll
/so. ...// modify base at a project "CodeProject Create your Proxy
DLL
s ...// and resolve the problem of article 《MinGW 编译的
DLL
在VC
中
使用的问题》
DirectCom附带所有
导出
函数
声明
找作者要到了所有
导出
函数
的
原型
,部分展示如下: 'STA免注册
函数
Declare Function STARTCOMOBJECT Lib "DirectCOM" (FName$, ClassName$, TI As Any) As Long 'please pass TI "ByVal VarPtr(MyTI)", in case of ...
在MATLAB环境
中
调用
DLL
对硬件资源访问的方法
在MATLAB环境
中
实现对硬件资源的直接访问可以极大的方便对数据的处理及算法的验证,基于这种目的提出一种扩展MATLAB访问硬件的方法,通过MATLAB外部
函数
接口调用第三方器件商提供的动态链接库
导出
函数
,在MATLAB平台...
GalgameReverse:galgame
中
的一些解码或编码方法
listmagic.py ,列出要分析的
文件
texture.py ,有关纹理和图片转换的内容Windows
工具
inject
dll
.py静态将
dll
注入到exe hook_util.cpp , hook_util.h动态钩子
函数
,例如iat钩子,内联钩子上题者extract_nt3.c ,nt3...
DLL
如何
导出
函数
文章目录一、使用 DEF
文件
从
DLL
... 如果没有使用 __declspec(
dll
export) 关键字来
导出
DLL
的
函数
,则
DLL
需要 DEF
文件
。 最小的 DEF
文件
必须包含以下模块定义语句:
文件
中
的第一个语句必须是 LIBRARY 语句。
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章