***一个想法***

pfans007 2001-09-14 09:33:53
有没有可以根据DLL产生一个头文件的程序?即使是不太准确也好。
...全文
100 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiss_kick_kill 2001-09-18
  • 打赏
  • 举报
回复
gz
qqchen79 2001-09-18
  • 打赏
  • 举报
回复
是呀,EAX或者EDX:EAX,但是知道在那里有什么用呢?知道类型吗?EAX里是int还是float或者pointer/ref?没办法呀!参数也一样,最多知道每个参数大小,已经很费力了,而且不可能自动完成。
pfans007 2001-09-18
  • 打赏
  • 举报
回复
标准的返回值不是从EAX返回吗?还有待观察。
qqchen79 2001-09-17
  • 打赏
  • 举报
回复
比较标准的DLL应该采用WINAPI或者说_stdcall调用规则,这与具体的编程语言没什么关系。有时候用VC生成的DLL会采用_cdecl,这样就失去了语言混合编程的特性。所以我们仍然一_stdcall位标准讨论DLL。
_stcall确实保存了参数的总字节数,但要编一个工具去分析每个参数的具体类型,已经非常困难了(主要是push/pop),至于返回值,根本没法得到!
pfans007 2001-09-17
  • 打赏
  • 举报
回复
据我用反编译工具观察,用vc编译出的DLL中输出的函数命名是有规律的,
再结合参数的压栈和出栈操作,可以探测到参数的个数及每个参数的字节数
当然如DWORD与int之类是无法区分的,不过我想能做到这些应该就不错了
大家有兴趣请探讨一下。我的邮箱是corefans@netease.com.
krerix 2001-09-16
  • 打赏
  • 举报
回复
gz
winnest 2001-09-16
  • 打赏
  • 举报
回复
得不到,dll是二进制代码。
tohigh 2001-09-15
  • 打赏
  • 举报
回复
gz
Frazy 2001-09-15
  • 打赏
  • 举报
回复
未必
qqchen79 2001-09-15
  • 打赏
  • 举报
回复
同意SCUM(人渣) 
不可能自动的从DLL中得到参数和返回值信息。
SCUM 2001-09-14
  • 打赏
  • 举报
回复
可以得到函数位置、函数名表。但得不到参数表和返回值。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧