首页
社区
课程
招聘
[求助]DELPHI 如何调用ASM写的DLL中的函数
2006-2-21 17:49 5810

[求助]DELPHI 如何调用ASM写的DLL中的函数

2006-2-21 17:49
5810
看了Binny大侠的《QQ 2005 贺岁版登录口令加密算法》完结篇》后
想利用他写好的函数库"qqmd5.dll"自己用DELPHI写一个解QQ密码的小程序。但是不会调用"qqmd5.dll"里面的函数,我弄了好久都不行,请大牛们指点一下。

附件为"qqmd5.dll"源码

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ivanov 2006-2-22 20:59
2
0
我没看你的这个东西,关于调用你可以看看这个,自己弄 http://book.chinaz.com/Delphi/delphi3/024.htm

但是,你上面提到 《QQ 2005 贺岁版登录口令加密算法》, 你给出的这个 dll,名字上面有 MD5, 这个MD5是一种破坏性加密,它自身是不可还原的, 另外如果它里面使用的是别的加密方式,假设是可还原的,那么它的dll里最多也就包含有加密函数,你调用加密函数也达不到解密的目的呀?
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xy8092 2006-2-22 21:35
3
0
首先谢谢您回我的贴子,文章已看过,可是我的问题还是没有解决,
我会用DELPHI调用自己用DELPHI写的DLL中的过程,但是还是调用不了qqmd5.dll里面的函数,关键是
1、在DELPHI中不知道应该怎么声明过程应该用什么类型的变量来传递参数给DLL
2、不知道DELPHI中的指针变量是占用几个字节的.

另外我知道MD5是单向的函数,我只是想做一个跑字典的暴力破解程序,最主要的还是学会用DELPHI调用别人写好的函数。
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
热血太子 2006-2-23 11:23
4
0
。。。不懂
以后就在这里学习了
认识下
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xy8092 2006-2-27 16:11
5
0
有没有人帮写个简单的例子啊,(DELPHI调用ASM_DLL的例子)
高手们指点一下吧..
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-3-1 11:03
6
0
在Delphi里调用DLL的函数应该不难。
只需在Delphi里声明调用的函数名,调用约定,调用Dll名就行了,如下面Dll函数声明格式:
Function 函数名(参数名:类型):返回类型; External 'Dll名'; 调用约定;
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xy8092 2006-3-2 21:28
7
0
调用DELPHI写的函数可以.
但我上面的问题最主要是不知道用什么类型的参数来传递参数.
QQMD5.DLL里面MD5函数是这样声明的:

MD5 proc  uses ebx ecx \lpEWH:DWORD, iLen:DWORD, MD5Ptr:DWORD
(第一个和第三个参数是数组的指针,第二个参数是长度.整型的.)
我在DELPHI中应该怎么样声明.调用的时候又应该怎么样调用?(主要是传递参数的问题)

Procedure MD5(lpEWH: Pointer; PoiLen: Integer;MD5Ptr: Pointer); far; external 'qqmd5.dll';

这样声明可以吗?如果可以的话调用的时候怎么调用呢?
游客
登录 | 注册 方可回帖
返回