如何获取dll文件中的函数及其参数?

shao_xiao_dong 2000-07-18 08:35:00
我有一个dll文件,里面有一些有用的函数。但是我没有该dll文件的说明,无法知道其包含的函数名称及其相应的参数组成,因此也就无法在程序中"Declare Function"。请问有没有办法获取dll的函数及其参数?
...全文
857 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyang 2000-07-19
  • 打赏
  • 举报
回复
不好意思,我对汇编不是很熟。要看一下才行。
shao_xiao_dong 2000-07-19
  • 打赏
  • 举报
回复
liyang:
还要麻烦你,现在我可以取出dll中的函数名称了,但是仍然无法获取其
参数。是否能再指点一下,附上一段反汇编后的代码。

Exported fn(): TLINHRZ - Ord:0011h
:0006.34AE B8FFFF mov ax, SEG ADDR of Segment 0014
:0006.34B1 45 inc bp
:0006.34B2 55 push bp
:0006.34B3 8BEC mov bp, sp
:0006.34B5 1E push ds
:0006.34B6 8ED8 mov ds, ax
:0006.34B8 83EC04 sub sp, 0004
:0006.34BB 66C746FA00000000 mov dword ptr [bp-06], 00000000
:0006.34C3 837E1600 cmp word ptr [bp+16], 0000
:0006.34C7 751A jne 34E3
:0006.34C9 66837E1200 cmp dword ptr [bp+12], 00000000
:0006.34CE 7513 jne 34E3
:0006.34D0 66837E0E00 cmp dword ptr [bp+0E], 00000000
:0006.34D5 750C jne 34E3
:0006.34D7 66837E0A00 cmp dword ptr [bp+0A], 00000000
:0006.34DC 7505 jne 34E3
:0006.34DE 66837E0600 cmp dword ptr [bp+06], 00000000

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0006.34C7(C), :0006.34CE(C), :0006.34D5(C), :0006.34DC(C)
|
:0006.34E3 1E push ds
:0006.34E4 688809 push 0988
:0006.34E7 6A01 push 0001
:0006.34E9 666A02 push 00000002
:0006.34EC 666807000001 push 01000007
:0006.34F2 66680D000C00 push 000C000D
:0006.34F8 9AFFFF0000 call CVTE.Ord{001Ch}
:0006.34FD 66C1E010 shl eax, 10
:0006.3501 660FACD0 shrd eax, edx, 10
:0006.3505 106689 adc [bp-77], ah
:0006.3508 46 inc si
:0006.3509 FA cli
:0006.350A 66837EFA00 cmp dword ptr [bp-06], 00000000
:0006.350F 751B jne 352C

* Possible Reference to Dialog: TTOLDLG400, CONTROL_ID:0006, ""
|
:0006.3511 666A06 push 00000006
:0006.3514 666A00 push 00000000
:0006.3517 666A00 push 00000000
:0006.351A 9AFFFF0000 call CVTE.Ord{0033h}
:0006.351F 66C1E010 shl eax, 10
:0006.3523 660FACD0 shrd eax, edx, 10
:0006.3527 106689 adc [bp-77], ah
:0006.352A 46 inc si
:0006.352B FA cli

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0006.350F(C)
|
:0006.352C 66837EFA00 cmp dword ptr [bp-06], 00000000
:0006.3531 7515 jne 3548

* Possible Reference to String Resource ID=08960: "水平的尺寸标注 "
|
:0006.3533 680023 push 2300
:0006.3536 9AFFFF0000 call CVTE.Ord{0030h}
:0006.353B 66C1E010 shl eax, 10
:0006.353F 660FACD0 shrd eax, edx, 10
:0006.3543 106689 adc [bp-77], ah
:0006.3546 46 inc si
:0006.3547 FA cli

.......
liyang 2000-07-18
  • 打赏
  • 举报
回复
没关系。
shao_xiao_dong 2000-07-18
  • 打赏
  • 举报
回复
非常感谢!
liyang 2000-07-18
  • 打赏
  • 举报
回复
已经给你发过去了
anstern 2000-07-18
  • 打赏
  • 举报
回复
我也要,anstern@yahoo.com
shao_xiao_dong 2000-07-18
  • 打赏
  • 举报
回复
能否将wdasm32以及相关资料给我发过来,我的Email是Designonline@263.net
或者上载到某个教育网的FTP站点,谢谢。
liyang 2000-07-18
  • 打赏
  • 举报
回复
函数可以拿到,参数你要看相应函数的压栈过程。
用wdasm32反汇编。如需要,我这有。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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