vc远程线程注入代码(远程线程注入能干什么)
admin 发布:2022-12-19 21:05 168
本篇文章给大家谈谈vc远程线程注入代码,以及远程线程注入能干什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、MFC/VC++进程自我保护(通过远程线程注入或HOOK)
- 2、远程线程注入咋办
- 3、如何用C++写出自定义汇编代码的代码注入器
- 4、VB.NET下如何进行远程线程注入
- 5、用vc++在远程进程中对指定内存注入代码,请问怎么实现,给出具体的实现方法
MFC/VC++进程自我保护(通过远程线程注入或HOOK)
//dll 代码:
#include windows.h
char pNew[8] = {0};
char pOld[8] = {0};
HMODULE hModu = NULL;
DWORD dwOldApi = 0;
void HookApiOn(char* pDllName, char* pApiName,FARPROC pFunc)
{
DWORD dwOld = 0;
DWORD flag = 0;
hModu = LoadLibrary(pDllName);
dwOldApi = (DWORD)GetProcAddress(hModu,pApiName);
VirtualProtect((LPVOID)dwOldApi,5,PAGE_READWRITE,dwOld);
char*p = (char*)dwOldApi;
DWORD dd = (DWORD)pFunc - dwOldApi -5 ; //jmp lebel:5个字节
pNew[0] = 0xE9;
*(DWORD*)(pNew[1]) = dd;
ReadProcessMemory(GetCurrentProcess(),(LPVOID)dwOldApi,(LPVOID)pOld,5,flag);
//memcpy((void*)pOld,(const void*)dwOldApi,5);
WriteProcessMemory(GetCurrentProcess(),(LPVOID)dwOldApi,(LPVOID)pNew,5,flag);
VirtualProtect((LPVOID)dwOldApi,5,dwOld,NULL);
return ;
}
void HookApiOff()
{
DWORD dwOld = 0;
DWORD flag = 0;
VirtualProtect((LPVOID)dwOldApi,5,PAGE_READWRITE,dwOld);
WriteProcessMemory(GetCurrentProcess(),(LPVOID)dwOldApi,(LPVOID)pOld,5,flag);
VirtualProtect((LPVOID)dwOldApi,5,dwOld,NULL);
return ;
}
void _stdcall my_MessageBoxW( HWND hWnd ,LPCWSTR lpText,LPCWSTR lpCaption,UINT uType)
{
HookApiOff();
if(IDNO == MessageBoxW(NULL,L"程序非法调用了MessageBoxW函数,是否阻止?",L"提示",MB_YESNO))
MessageBoxW(hWnd,lpText,lpCaption,uType);
HookApiOn("user32.dll","MessageBoxW",(FARPROC)my_MessageBoxW);
}
void InstallAllHook()
{
HookApiOn("user32.dll","MessageBoxW",(FARPROC)my_MessageBoxW);
return ;
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
InstallAllHook();
break;
}
return TRUE;
//.exe实现进程注入的代码:此处注入到任务管理器中
#include windows.h
#include stdio.h
#define Dll_Name "F:\\workspqce\\Jmp_Hook\\Debug\\jmp_dll.dll"
BOOL EnablePrivilege()
{
HANDLE hToken = NULL;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken))
{
TOKEN_PRIVILEGES tkp= {0};
LookupPrivilegeValue( NULL,SE_DEBUG_NAME,tkp.Privileges[0].Luid );//修改进程权限
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken,FALSE,tkp,sizeof tkp,NULL,NULL );//通知系统修改进程权限
return( (GetLastError()==ERROR_SUCCESS) );
}
return FALSE;
}
BOOL InjectDll(DWORD dwProcessId)
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessId);
if(!hProcess)
return FALSE;
LPVOID pszDllName = VirtualAllocEx(hProcess,NULL,strlen(Dll_Name)+1,MEM_COMMIT,PAGE_READWRITE);
if(!pszDllName)
return FALSE;
if(!WriteProcessMemory(hProcess,pszDllName,Dll_Name,strlen(Dll_Name),NULL))
return FALSE;
PTHREAD_START_ROUTINE tsr = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")),"LoadLibraryA");
if(!tsr)
return FALSE;
HANDLE hRemote = CreateRemoteThread(hProcess,NULL,0,tsr,pszDllName,0,NULL);
if(!hRemote)
return FALSE;
WaitForSingleObject(hRemote,INFINITE);
VirtualFreeEx(hProcess,pszDllName,strlen(Dll_Name)+1,MEM_RELEASE);
return true;
}
int main()
{
DWORD dwProcessId = 0;
HWND hWindow = FindWindow(NULL,"Windows 任务管理器");
GetWindowThreadProcessId(hWindow,dwProcessId);
if(EnablePrivilege())
InjectDll(dwProcessId);
return 0;
}
远程线程注入咋办
时间
操作
说明
拦截次数
20:59:12
自动允许
远程线程注入
58
详细描述:
进程:C:\Windows\System32\wbem\WmiPrvSE.exe
动作:远程线程注入
路径:
我的电脑昨天还好好的
今天中午打开QQ之后.所有应用程序都不能用.网也断了
后来我弄好之后
发现了以上的远程注入
我猜是中毒了
不过杀毒软件杀不出
搞得我现在QQ,TM都卸载了
不敢用...
如何用C++写出自定义汇编代码的代码注入器
如果他写的是机器码倒是可以执行,若是汇编指令,那楼下说得有理,你需要自己写汇编解释器,将汇编翻译成机器指令,然后把那个存放机器指令的缓冲区强制类型转换成函数指针,调用即可
void (*f)()
f=(void (*)())buf;
f();
buf最好是char*存放着机器码!
VB.NET下如何进行远程线程注入
首先来了解远程线程注入远程线程插入(注入)技术指的是通过在另一个进程中创建远程线程的方法进入目标进程的内存地址空间。将木马程序以DLL的形式实现后,需要使用插入到目标进程中的远程线程将该木马DLL插入到目标进程的地址空间,即利用该线程通过调用Windows API LoadLibrary函数来加载木马DLL,从而实现木马对系统的侵害。 这种技术一般用于外挂 当外挂注入到游戏中时 你的电脑也就中啦木马 一般的解决方法 wmiprvse.exe是一个系统服务的进程,你可以结束任务,进程自然消失。 禁用Windows Management Instrumentation Driver Extensions服务或者改为手动 具体:桌面-我的电脑-管理-服务和应用程序-服务 里面有个Windows Management Instrumentation 右键—禁用就可以了. 我也用过,感觉第二种方法较好。 解除命令方法:同样操作复制下边的命[1][2][3]令粘贴输入,回车确定。即可、 reg add “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\wmiprvse.exe” /f希望会帮到你
用vc++在远程进程中对指定内存注入代码,请问怎么实现,给出具体的实现方法
先OpenProcess,
这里假设你晓得内存地址为0x1005360,768是大小
VirtualProtectEx(pHandle,(void *)0x1005360,768,PAGE_EXECUTE_READWRITE,dwIdOld);
然后再WriteProcessMemory,就完成了
当然,好像有些带保护的进程直接virtualProtectEx是执行不成功的,需要提权,这个网上找一下有现成的。
vc远程线程注入代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于远程线程注入能干什么、vc远程线程注入代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
- 上一篇:易宝在线代码(易宝软件官网)
- 下一篇:html代码练习(html编程题)
相关推荐
- 05-15零基础学什么技术好,零基础学什么技术好开店
- 05-15网络维护是做什么的,网络维护是做什么的好学吗
- 05-14外链网站是什么,外链是啥
- 05-14网络推广员的工作内容和步骤,网络推广员的工作内容和步骤是什么
- 05-14交易链接大全,交易链接是什么意思
- 05-14做一个网站需要什么,做一个网站需要什么物理设备
- 05-13现在什么app引流效果好,现在什么app引流效果好呢
- 05-13神马推广登录,神马推广是什么
- 05-13优化关键词的方法包括,优化关键词是什么
- 05-13web前端开发工程师,Web前端开发工程师是做什么的
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接