无dll穿墙原理

穿墙概念不用说了,就是穿透防火墙。软件防火墙会监视进程对网络的使用情况,发现可疑软件使用网络时会提醒用户要是用户阻止的话,你的什么下载者什么远程控制就没用了。怎么穿墙呢,其实很简单,用一个已经获得用户允许使用网络的程序来进行网络连接。一般来说如果用户要上网就要用到浏览器,所以浏览器程序一般是被允许使用网络的。那怎么让浏览器来干我们想干的事呢,对,注入。一般注入是把要执行的代码放到dll里面然后把这个dll注入到远程地址中去执行,而今天要讨论的是无dll穿墙呀,难道不是注入。其实也是注入。只不过比dll注入来得更直接,直接把程序写到远程地址空间里去。

为了方便我们要写一个函数来做我们要在远程空间里做的事,比如说下载,比如说远控的服务端。
假设这个函数名字为download()

然后获得本进程的句柄,其实也是本进程的首地址。使用

VirtualAllocEx(processhandle, Module, Size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);在远程进程分配空间供写入。

接着用WriteProcessMemory把本进程整个写入到远程空间里去

最后调用CreateRemoteThread,地址其实就是download()的地址,因为我们分配内存的时候分配的首地址刚好是module,所以所有函数的地址都没有变。

好了,干完坏事就在远程进程里面退出了。

要是不懂的话可以参考本站的另一篇文章“C语言编写3k下载者”这篇文章

文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 7532