吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 963|回复: 9
收起左侧

[求助] 写入内存失败

[复制链接]
huchen 发表于 2024-6-5 18:57
起因是在学习《逆向工程 核心原理》中的“记事本WriteFile()API钩取“章节时,遇到的问题
我的代码如下
[C++] 纯文本查看 复制代码
LPVOID WriteFileAddr;
CREATE_PROCESS_DEBUG_INFO g_cpdi;
BYTE g_setInt3 = 0xCC, g_bfbyte = 0;

BOOL OnCreateProcessDebugEvent(LPDEBUG_EVENT pde)
{
	//获取WriteFile API地址
	WriteFileAddr = GetProcAddress(GetModuleHandleA("kernel32"), "WriteFile");
	if(WriteFileAddr == NULL)
	{
		printf("获取WriteFile API地址失败\n");
		return FALSE;
	}

	//更改第一个字节为0xCC(INT 3)
	memcpy(&g_cpdi, &pde->u.CreateProcessInfo, sizeof(CREATE_PROCESS_DEBUG_INFO));

	//备份原来的字节
	ReadProcessMemory(g_cpdi.hProcess, WriteFileAddr, (LPVOID)g_bfbyte, sizeof(BYTE), NULL);

	//修改成0xCC,起到调试的作用
	/*BOOL Ret = WriteProcessMemory(g_cpdi.hProcess, WriteFileAddr, (LPVOID)g_setInt3, sizeof(BYTE), NULL);
	if(Ret == FALSE)
	{
		printf("修改成0xCC失败\n");
		return FALSE;
	}
	*/
	__asm
	{
		push ecx
		mov cl,g_setInt3
		mov byte ptr [WriteFileAddr],clS
		pop ecx
	}
	return TRUE;


}


这是我的测试代码,首先就是用了WriteProcessMemory API,发现这个函数并没有修改成功,但是返回值却是成功的,所以我就用汇编来写
写完却发现也没有改成功,不仅没有改我想要的地址内容,而且还把地址改了,如下图 image.png

求大佬们解答一下
我的测试环境:虚拟机win xp VC6++

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
捷豹网络丶贱仔 发表于 2024-6-5 21:27
提示: 作者被禁止或删除 内容自动屏蔽
伟大的卓哥 发表于 2024-6-5 19:50
bester 发表于 2024-6-5 19:55
yes2 发表于 2024-6-6 08:55
楼上讲的都对。另外提醒一下,WriteProcessMemory才能跨进程,你改成汇编的代码只能写自身进程的内存
 楼主| huchen 发表于 2024-6-6 10:05
yes2 发表于 2024-6-6 08:55
楼上讲的都对。另外提醒一下,WriteProcessMemory才能跨进程,你改成汇编的代码只能写自身进程的内存

哦~好的学习了
 楼主| huchen 发表于 2024-6-6 11:04
bester 发表于 2024-6-5 19:55
(LPVOID)g_setInt3  不需要使用取地址符号&吗

文档里写的就是LPVOID属性啊,确实改成&就可以了,不改的话会提示错误代码299,说仅完成部分的  WriteProcessMemory 请求,加上&的话都是4字节,但为什么LPVOID不行呢
bester 发表于 2024-6-6 11:57
huchen 发表于 2024-6-6 11:04
文档里写的就是LPVOID属性啊,确实改成&就可以了,不改的话会提示错误代码299,说仅完成部分的  WritePro ...

你信ms写的文档就怪了,不知道挖了多少坑,有的参数不需要&,有的参数又需要&,统一表述LPVOID,让你傻傻分不清
 楼主| huchen 发表于 2024-6-6 12:08
bester 发表于 2024-6-6 11:57
你信ms写的文档就怪了,不知道挖了多少坑,有的参数不需要&,有的参数又需要&,统一表述LPVOID,让你傻傻分不 ...

好吧,看来不能太依赖文档了
yes2 发表于 2024-6-9 20:01
不依赖文档难道依赖8楼吗?官方文档才是正确的路
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表