打印

[原创] 用VB实现DLL注入详解[有源码]

本主题由 Winnip 于 2008-9-17 11:22 加入精华
引用:
原帖由 regedit 于 2008-7-26 10:10 发表
具体DLL里面的函数是怎样执行的?我用你的程序调用我自己写的 DLL,不知道怎么执行里面的函数?(DLL是用delphi写的)
我的DLL是C++写的,在C++中,DLL的入口函数是DllMain,定义如下:
复制内容到剪贴板
代码:
BOOL WINAPI DllMain(
  HINSTANCE hinstDLL,  // handle to the DLL module
  DWORD fdwReason,     // reason for calling function
  LPVOID lpvReserved   // reserved
);
hinstDll 是DLL实例句柄,fdwReason 是调用DLL的原因的标志,lpvReserved 是保留参数。
fdwReason 有四种DLL_PROCESS_ATTACH、DLL_THREAD_ATTACH、DLL_THREAD_DETACH 和 DLL_PROCESS_DETACH。
其中,进程将DLL加载到内存时会传递DLL_PROCESS_ATTACH,所以我在程序中定义了一个线程函数,并判断,当fdwReason的值为DLL_PROCESS_ATTACH时就调用CreateThread创建了一个新线程来执行线程函数中的代码。

我没有用过Delphi,但我在网上查了下,Delphi 中,DLL的入口函数如下:

procedure DllEnterPoint(dwReason: DWORD);far;stdcall;

参数dwReason 和C++中完全一样,所以我认为可以用这种思路来实现。

我的DLL的源码我已经发在17楼的,有兴趣可以看下。
以子之,攻子之矛。

TOP

大半年没来这里了   半年后你是我顶的第一个帖子~~~拿来看一下~~

回复 22# 的帖子

着实让人感动啊。
以子之,攻子之矛。

TOP

不错,下载测试下!
也就是接个函数的应用

申请内存和写内存

TOP

引用:
原帖由 haicuan139 于 2008-7-17 10:54 发表
不错 很有基础性 不过VB 。。。
要是用WIN32的话  那就更好了呵呵
我有WIN32的

要吗?
很好很强大,找的就是你
囧nz

TOP

可惜还有几个系统进程无法注入
你那DLL里。。。。到底是不是下载者你说清楚哦
怎么20秒后就弹那个警告啊。。
欺骗我啊。。。
囧nz

TOP

引用:
原帖由 aqirui1993 于 2008-8-12 12:51 发表
你那DLL里。。。。到底是不是下载者你说清楚哦
怎么20秒后就弹那个警告啊。。
欺骗我啊。。。

你是第一个提出这个问题的,DLL的代码我已经发了,在第二页,17# ,你自己看下就知道了。
以子之,攻子之矛。

Processed in 0.118008 second(s), 6 queries, Gzip enabled