当前位置:首页 > 代码 > 正文

vc远程线程注入代码(什么是远程线程注入)

admin 发布:2022-12-19 23:42 156


本篇文章给大家谈谈vc远程线程注入代码,以及什么是远程线程注入对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

我在下载300英雄盒子的时候系统提示以下程序正在进行远程线程注入,将代码藏匿到其他进程来运行

肯定阻止啊。线程注入也叫代码注入,如果真的有的话表示它可以将它的代码注入到你电脑上别的进程里面比如QQ啊office啊,那样你发现不了它还可以随意窃取你电脑上的信息。

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;

}

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是执行不成功的,需要提权,这个网上找一下有现成的。

远程线程注入咋办

时间

操作

说明

拦截次数

20:59:12

自动允许

远程线程注入

58

详细描述:

进程:C:\Windows\System32\wbem\WmiPrvSE.exe

动作:远程线程注入

路径:

我的电脑昨天还好好的

今天中午打开QQ之后.所有应用程序都不能用.网也断了

后来我弄好之后

发现了以上的远程注入

我猜是中毒了

不过杀毒软件杀不出

搞得我现在QQ,TM都卸载了

不敢用...

如何用C++写出自定义汇编代码的代码注入器

如果他写的是机器码倒是可以执行,若是汇编指令,那楼下说得有理,你需要自己写汇编解释器,将汇编翻译成机器指令,然后把那个存放机器指令的缓冲区强制类型转换成函数指针,调用即可

void (*f)()

f=(void (*)())buf;

f();

buf最好是char*存放着机器码!

关于vc远程线程注入代码和什么是远程线程注入的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/30763.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载