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

易语言 2020-07-14 18:54:04

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

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

反线程注入的Dll要用VC++写原因是这样的:
易语言的Dll入口子程序没有提供ul_reason_for_call这个参数。
编译出来的Dll使用方法很简单,用LoadLibraryA载入到内存就可以了。