Ring3层的DLL注入(32)(64)
来源:互联网 发布:贝佳斯绿泥淘宝 编辑:程序博客网 时间:2024/06/05 17:28
原理:
自己写的一个进程,将对方的进程空间打开,在其中写ShellCode,这句shellcode翻译为机器指令实际上就是loadlibrary(Dll.dll),也就是自己写的一个动态库,在这个动态库中这写了当有进程加载此动态库时弹出一个MessageBox。
五个函数都在围绕ShellCode的这三个地址来写的。
ShellCode中需要三个地址:
1.EIP的地址,就是对方主线程的eip地址,通过从对方主线程的上下背景文获得。GetMainThreadIDByProcessID,InjectDllBySetThreadContext
2.Dll的地址,直接在本进程中获得。GrantPriviledge(提权),这个归类貌似有些不合适
3.对方进程中导入表的loadlibrary函数的地址:首先打开对方进程空间PEB,利用PEB中的一个PE文件中有导入表的偏移,PE文件的基地址加上这个偏移得到导入表的基地址,然后两层循环遍历导入表(模块和函数名),最后得到目标函数地址。GetPebByProcessID, GetFunctionAddressInTargetProcessImportTableByFunctionName
注意点:
ModuleBase = (ULONG_PTR)Peb.ImageBaseAddress;
//PEB结构中获得的ImageBaseAddress成员的地址就是PE文件的基地址(Dos头地址)!
IMAGE_IMPORT_DESCRIPTOR ImageImportDescriptor = { 0 };
DWORD v1 = 0;
v1 = ImageNtHeaders.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress;
//PE文件的NT头中获得的v1只是导入表的偏移!
//(PIMAGE_IMPORT_DESCRIPTOR)(ModuleBase + v1)才是(第一张)导入表的绝对地址!
//也就是(第一张)导入表的地址等于PE文件的基地址加上v1这个偏移!
源代码:
download.csdn.net/download/nyzdmc/10129241
- Ring3层的DLL注入(32)(64)
- ring3层远程注入DLL方法
- ring3下的注入dll
- Ring3下的DLL注入工具
- Windows x86/ x64 Ring3层注入Dll总结
- Windows x86/ x64 Ring3层注入Dll总结
- Ring3下远程注入DLL干掉IceSword
- Ring3下Dll注入方法整理汇总
- Ring3下Dll注入方法整理汇总
- Ring3下Dll注入方法整理汇总
- 远程注入代码,一些过时的ring3技术(ASM、VC++、Delphi) (非Dll注入)
- Ring3下的DLL注入工具 x86&x64(NtCreateThreadEx + LdrLoadDll方式实现,可以注入系统进程)
- APC 基本概念及APC注入的实现(Ring3 + Ring0)----概念介绍
- APC 基本概念及APC注入的实现(Ring3 + Ring0)----实现
- (开源) Ring3下的DLL注入工具 x86&x64(NtCreateThreadEx + LdrLoadDll方式实现,可以注入系统进程)
- Windows平台Ring3下DLL注入(HOOK)方法整理汇总
- DLL注入(转)
- ring3层一种占用文件的方法
- 3.3 if 条件分支语句
- Cg Programming/Unity/Translucent Surfaces半透明表面
- sizeof
- The Accomodation of Students
- 二叉树的层次遍历
- Ring3层的DLL注入(32)(64)
- Win10禁用管理员帐户后无法进入的两种解决方法
- Linux下的lds链接脚本解释
- NOIP2017 PJ蒟蒻的游记
- 从架构演进的角度聊聊 Spring Cloud 都做了些什么?
- 使用pycharm import本地文件夹的py文件时出现unresolved reference,下面一直出现红线
- Cad二次开发(二)
- Null pointer access: The variable al can only be null at this location问题的解决
- ESP32 应用实践:基于 ULP 的超低功耗浇花设备