我是人民币 发表于 2014-5-22 21:10

易语言配合VC++写的DLL实现无驱动的反远程线程注入

本帖最后由 我是人民币 于 2014-5-22 21:12 编辑

原理如下:
首先DllMain的第二个参数 ul_reason_for_call,会传入一些信息
当有线程创建的时候系统会在线程执行前调用一次所有载入到该进程DLL的DllMain函数,这时候,ul_reason_for_call传入的参数是DLL_THREAD_ATTACH,如此一来就方便多了,不必去HOOK其他进程的线程创建函数。
流程如下:
      在DllMain里面判断 ul_reason_for_call = DLL_THREAD_ATTACH
               如果 等于 那么,枚举线程,获得所以线程的入口地址,然后挨个检测入口地址是否为LoadLibraryAor LoadLibraryW的入口地址
       如果是,那么杀掉,或者默默退出。
不推介杀掉,杀掉后程序一会就回卡死,可能要等系统把所有的DllMain调用完后,线程开始执行了才可以安全杀死吧,可以设置一个定时器,一般DllMain的代码一般很简单,所以把定时器的时序放短一点,500毫秒或者更少【猜测】。

反线程注入的Dll要用VC++写原因是这样的:
         易语言的Dll入口子程序没有提供ul_reason_for_call这个参数。


编译出来的Dll使用方法很简单,用LoadLibraryA载入到内存就可以了。





y79112 发表于 2014-5-22 21:44

{:301_976:}额,看看,不太懂。。。。

77341991 发表于 2014-5-22 21:59

        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:                //创建               
                break;
        case DLL_THREAD_ATTACH:
                //这里判断是否被注入
                break;
        case DLL_THREAD_DETACH:
                break;
        case DLL_PROCESS_DETACH:                //结束
                break;
        }

lwj一辈子 发表于 2014-5-23 10:06

很强大的样子

Leodinas 发表于 2015-4-3 00:50

下载观看一下!

Leodinas 发表于 2015-4-3 01:34

晕!
没安装SDK
生成报错了~~

530230 发表于 2015-5-30 10:49

{:1_937:}{:1_937:}{:1_937:}{:1_937:}{:1_937:}{:1_937:}{:1_937:}{:1_937:}{:1_937:}{:1_937:}kkkkkkkkkkkkkkkkkkkkk

xiaojunxwx 发表于 2015-5-30 11:20

下来研究下谢谢楼主分享
页: [1]
查看完整版本: 易语言配合VC++写的DLL实现无驱动的反远程线程注入