开yun体育app官方下载入口 开源一个自写的病毒技术工具集
文章目录
前言
前段时间在看《Windows黑客编程技巧详解》这本书,然后我想,与其一一敲出例子,不如把书中的例子写成一个项目,作为一个集合,这不仅有利于面试,也有利于以后的编码。的重用。最终花了半个月的时间开yun体育app官方下载入口,有了下面的东西。
界面
MFC写的界面有点low,不用担心这些细节。
代码视图
至于代码,给出一个粗略的类视图而不详细发布细节就太过分了。
功能介绍
下面一一介绍各个功能及其实现原理。
基础技术
防双重开启
使用最基本的互斥锁防双开功能写在主程序中。所以这个按钮只是一个象征性的东西。它始终开启。
释放资源
使用FindResourceW、SizeofResource、LoadResource、LockResource等API释放资源。
程序会在同一目录下释放后续功能测试所需的DLL。
注射技术
全局钩子注入
使用Windows提供的SetWindowsHookEx将DLL注入到系统中。测试 DLL 是 MyHookDll.dll。可以通过资源释放技术来释放所需的dll。你也可以自己编译。 HOOK消息是WH_GETMESSAGE。 dll中只写了一个符号化的MessageBox。即拖拽dll并点击开始注入后,当系统中任意进程收到消息时,都会弹出一个MessageBox。如果电脑中启动的应用程序过多,可能会导致蓝屏卡顿等情况。
远程线程注入拖放TestDll.dll(使用资源释放技术释放)或者自己编译并输入需要注入的进程ID。单击“开始注入”后,测试DLL将被注入到目标进程中。测试 DLL 只有一个 MessageBox。如果注入的进程具有更高的权限或检测更严格的进程(例如QQ.exe)可能会失败。
实现原理
使用ZwCreateThreadEx函数创建远程线程来实现DLL注入。之所以没有CreateRemoteThread,是因为CreateRemoteThread函数是由CreateRemoteThread内部调用的。相对来说,这个功能的权限会更高一些。
APC注入拖拽TestDll.dll(使用资源释放技术释放)或者自己编译并输入需要注入的进程名。单击开始注射。测试DLL将被注入到目标进程中。测试 DLL 只有一个 MessageBox。如果注入的进程权限较高或者检测速度比较慢,Strict(如QQ.exe)可能会失败
实现原理
通过QueueUserAPC向指定线程的APC队列添加函数
启动技术
创建流程的三种方法。将 exe 拖放到窗口中。单击按钮后,将使用三种不同的方式来创建流程。使用CreateProcess、ShellExecute 和WinExec 创建进程。在内存中加载并运行 dll。拖放 TestDll.dll(使用资源)。 Release技术发布)点击按钮后,程序会将TestDll模拟PE加载器加载到程序内存中并直接运行。如果将DLL隐藏在资源中,则可以直接运行病毒,而无需在本地释放DLL。 WannaCry和BadRabbit都采用了这种方法来运行。拥有主逻辑程序自启动技术
将任何 exe 从注册表拖到窗口中。单击该按钮后,程序的完整路径将被写入注册表。目标程序随系统启动而启动。您可以在提示窗口中查看注册表路径来查看或删除。原理:使用RegOpenKeyEx和RegSetValueEx将程序写入\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run。将任何 exe 拖到窗口的快速启动目录中。单击该按钮,程序将被复制到系统的快速启动目录中。目标程序会在用户登录时自动启动并可以自行查看。在提示窗口中查看或删除快速启动目录路径。实现原理:使用SHGetSpecialFolderPath函数获取Windows系统中快速启动目录的路径。然后开yun体育官网入口登录app,使用CopyFile函数将要自动启动的程序复制到快速启动目录中。该功能需要计划任务。使用管理员运行并将任何exe拖到窗口中。点击按钮后,目标程序就会被写入系统的计划任务程序中。该程序将在用户登录时启动。您可以自行删除计划任务中添加的事件。实现原理:调用COM组件将程序添加到计划任务中,实现开机自启动系统服务。该功能需要管理员运行并拖拽ServiceExeTest.exe(服务应用程序需要自行编译)到窗口中。单击该按钮后,ServiceExeTest.exe将被注册为系统服务。 ServiceExeTest.exe 将在后台运行。 ServiceExeTest.exe 不包含任何代码,它只是一个空的服务应用程序,可以使用任务管理器删除。实现原理:使用CreateService将编写的服务应用注册为系统服务,实现开机自启动提权技术。
提升至调试权限。此功能需要管理员来运行程序。点击按钮后,当前进程将提升为Debug权限。绕过UAC。首先,将用户帐户控制设置为默认值。点击按钮后,UAC弹窗将被绕过。升级到管理员权限,无弹窗。命令行实现管理员权限的原理:利用COM组件进行权限提升,查看当前进程权限。单击该按钮后,当前程序的所有权限都会显示在List控件上。您可以通过该功能检查提升Debug权限是否生效。隐藏技术
点击进程伪装按钮后,进程将伪装为Explorer.exe。该程序是 32 位的。该功能仅在32位系统下有效。原理:使用NtQueryInformationProcess获取进程环境块。修改指定进程环境块的进程路径和命令行信息,达到进程伪装的效果。傀儡进程将任何exe拖到窗口中,然后单击按钮将MessageBox ShellCode注入到目标exe中。实现原理:修改某个进程的内存数据,将Shellcode代码写入内存数据,并修改该进程的执行流程,使其执行Shellcode代码。这样开yun体育app官方下载入口,流程仍然是原来的流程,只是执行的操作被替换了。 DLL劫持的这个功能没有写在界面上,需要手动操作。我这里劫持的是FileCleaner2.0.exe的oledlg.dll。找到DllHijackTest.dll(使用资源释放技术释放)或者自己编译。将DLL重命名为oledlg.dll并找到它。将C:\Windows\SysWOW64目录下的oledlg.dll重命名为Old_oledlg(如果无法重命名,请自行百度解决)。将oledlg.dll放入SysWOW64目录下,运行FileCleaner2.0.exe劫持DllMian中的DLL。写了一个MessageBox函数来表示劫持成功的实现原理:当PE加载器加载DLL时,用自制的DLL替换原来的DLL,在自制的DLL中转发原来DLL的导出函数并添加代码压缩技术
数据解压:在文本框中输入数据,点击按钮,对输入的数据进行压缩和解压。实现原理:通过Windows提供的RtlDecompressBuffer和RtlGetCompressionWorkSpaceSize对数据文件进行解压缩。解压文件并将其拖到窗口中。单击按钮。使用ZLIB压缩库对文件进行压缩和解压,实现文件的解压和加密技术
哈希
将文件拖到窗口中,点击按钮即可获取文件的哈希值
AES加密/解密
在数据窗口中输入数据,点击按钮即可获取数据经过AES加密解密后的值。
RSA加密/解密
在数据窗口中输入数据,点击按钮即可获取RAS加解密后的数据值。
实现原理
以上加密和解密都是利用Windows自带的加密库,使用cryptoAPI来实现的。
功能技术
进程遍历
遍历当前所有进程
实现原理:使用Process32First和Process32Next
文件遍历遍历当前系统中的所有文件,查看文件属性和磁盘信息。双击查看文件属性和磁盘信息,进入下一个目录。实现原理:使用FindFirstFile和FindNextFile对当前屏幕进行截图。屏幕截图与程序同级存储。目录实现原理:使用GDI捕获屏幕截图并记录击键。实现键盘记录器来记录所有击键。按键记录保存在D盘下的log.txt中。实现原理:使用GetAsyncKeyState函数。该功能可以判断按键状态,根据是否处于按下状态来判断用户是否进行了按键操作,从而进行录音。之所以不使用全局键盘钩子和原始输入模型,是因为这两种方法都有各自的局限性。 MFC实现显示CMD结果并不容易。在命令框中输入CMD命令,例如ping 127.0.0.0。命令执行完成后,CMD命令的执行结果将显示在数据窗口中。由于环境不一致,该功能可能无法执行。实现原理:使用命名管道进行进程通信。 ,从而获得cmd的执行结果。在功能窗口中,该功能默认开启,用于监控U盘的插入和拔出。将U盘中的所有.txt文件复制到程序当前目录。如果需要复制其他文件,请修改它们。源码实现原理:响应WM_DEVICECHANGE监听U盘,获取盘符并进行文件遍历复制所需文件。文件监控监控D盘的文件操作。实现原理:Windows提供了一个文件监控接口函数ReadDirectoryChangesW。该监控功能可以监控电脑上的所有文件操作。点击“自删除”后,程序将退出进程并自行删除。实现原理:使用批处理指令。本程序仅供交流和研究,请勿用于其他用途。任何后果与我无关。由于环境不同,无法保证每个功能在每台机器上都可行。程序如有bug,敬请谅解。如果发现dll缺失或者没有测试文件,可以在项目下找到并自行编译。本程序的编程环境是W10 64 VS2017。最后附上源码。
GitHub地址:
我要评论