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

vc远程写入代码(vc如何打开源代码)

admin 发布:2022-12-19 15:30 129


本篇文章给大家谈谈vc远程写入代码,以及vc如何打开源代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用vc++在远程进程中对指定内存注入代码,请问怎么实现,给出具体的实现方法

先OpenProcess,

这里假设你晓得内存地址为0x1005360,768是大小

VirtualProtectEx(pHandle,(void *)0x1005360,768,PAGE_EXECUTE_READWRITE,dwIdOld);

然后再WriteProcessMemory,就完成了

当然,好像有些带保护的进程直接virtualProtectEx是执行不成功的,需要提权,这个网上找一下有现成的。

VC远程注入失败

给你一个示例

//提升本进程的访问权限

BOOL EnableDebugPrivilege(BOOL bEnable=TRUE)

{

//附给本进程特权,以便访问系统进程

BOOL bOk=FALSE;

HANDLE hToken;

//打开当前进程的访问令牌

if(::OpenProcessToken(::GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken))

{

//取得特权名称为"SetDebugPrivilege"的LUID

LUID uID;

::LookupPrivilegeValue(NULL,SE_DEBUG_NAME,uID);

//调整特权级别

TOKEN_PRIVILEGES tp;

tp.PrivilegeCount=1;

tp.Privileges[0].Luid=uID;

tp.Privileges[0].Attributes=bEnable?SE_PRIVILEGE_ENABLED:0;

::AdjustTokenPrivileges(hToken,FALSE,tp,sizeof(tp),NULL,NULL);

bOk=(::GetLastError()==ERROR_SUCCESS);

//关闭访问令牌句柄

::CloseHandle(hToken);

}

return bOk;

}

//查找指定的进程名称,在此不传递参数,直接查找记事本进程

DWORD SearchNotebook()

{

PROCESSENTRY32 pe32;

pe32.dwSize=sizeof(PROCESSENTRY32);

HANDLE h_snap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if(Process32First(h_snap,pe32))

{

do

{

if(strncmp("notepad.exe",pe32.szExeFile,strlen("notepad.exe"))==0)

return pe32.th32ProcessID;

}while(Process32Next(h_snap,pe32));

}

return 0;

}

typedef DWORD (FAR WINAPI*MyMessageBox)(HWND,unsigned short*,unsigned short*,unsigned short);

//要注入的函数名称

void FuncInjected(LPVOID dwAddress)

{

//OutputDebugString("进入");

DWORD addr=(DWORD)dwAddress;

char msg[]="注入成功";

char title[]="Warning";

_asm

{

pushad

lea eax,msg

lea ebx,title

push 0

push ebx

push eax

push 0

call addr

popad

}

return;

}

void SelfDelTest()

{

EnableDebugPrivilege(TRUE);

DWORD dwId=SearchNotebook();

if(dwId==0) return;

HANDLE h_proc=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwId);

if(h_proc==NULL)return;

void*lpfunc=VirtualAllocEx(h_proc,NULL,1024*4),MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);

if(lpfunc==NULL)return;

UINT nRet=WriteProcessMemory(h_proc,(LPVOID)lpfunc,(LPVOID)FuncInjected,1024*4,NULL);

//if(nRet!=strlen((char*)FuncInjected)){::MessageBox(NULL,"我日- -!","- -!",0);return;}

//取得MessageBoxA的地址

HMODULE h_mod=LoadLibrary("Kernel32.dll");

MyMessageBox msgBox=(MyMessageBox)GetProcAddress(h_mod,"MessageBoxA");

//

::MessageBox(NULL,"我日- -!","- -!",0);

HANDLE h_RemoteTD=CreateRemoteThread(h_proc,NULL,0,(LPTHREAD_START_ROUTINE)lpfunc,msgBox,0,NULL);

}

vc远程调用call,读人物血值,游戏出错!注入器测试汇编代码没问题!

ReadXml 方法提供了只将数据或同时将数据和架构从 XML 文档读入 DataSet 的方式,而 ReadXmlSchema 方法仅读架构。若要同时读数据和架构,请使用包括 mode 参数的 ReadXML 重载之一,并将其值设置为 ReadSchema。

请注意,对于 WriteXml 和 WriteXmlSchema 方法也是如此。若要写入来自 DataSet 的 XML 数据或架构和数据两者,使用 WriteXml 方法。若要只写入架构,请使用 WriteXmlSchema 方法。

如何使用VC进行远程调试(Remote Debug)

1. 配置目标机 1)拷贝Remote Debugger客户端与目标程序的调试版本到目标机。 拷贝目录C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x86。 目标程序如C:/Windows/System32/Thpsvr.exe 2)执行Remote Debugger客户端程序msvsmon.exe。 首先关掉Windows防火墙。 运行程序后,选择[Tools]-[Options]。选择[No Authentication(native only)],并勾选[Allow any user to debug]。 2. 配置主机 1) 打开工程,选择调试模式。 由菜单依次选择[Project] [Properties] [Configuration Properties] [Debugging]。将Debugger to launch选为Windows Remote Debugger. 2) 配置Remote Debug参数。 [Remote Command] 设置为目标程序全路径,C:/Windows/System32/Thpsvr.exe。[CommandArguments] 按需要为程序设置参数。 [Remote Server Name] 填入目标机的IP地址。 [Connection] 设为Remote with no Authentication(native only) 其它设置不需要改动。 客户机和主机配置都已经完成,接下来以和本机调试相同的方法进行调试就可以了。

vc远程写入代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vc如何打开源代码、vc远程写入代码的信息别忘了在本站进行查找喔。

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

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


取消回复欢迎 发表评论:

分享到

温馨提示

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

联系我们反馈

立即下载