[$ÿĀ]$$%ĀĀþ是什么意思?

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

这样定义就是个ascii字符串,而汇编里面是unicode。这才是问题的关键。

我把C++代码留给以后需要的人。
汇编代码功能就是替换一个老版播放器里面的码,运行结果是正常的,
我想用C++重写下, 但是替换出来,结果是错误的。

下面是我写的C++代码,vs2019通过

[C++] 纯文本查看 复制代码

// 第13章 Hook技术 《加密与解密(第四版)》 //
// 转载请保留作者信息 //
//本程序中实现了一个简单的Hook引擎,可以通过更改下面的宏定义实现不同的InlineHook
//定义如下结构,保存一次InlineHook所需要的信息
 
 sub edx, eax // 因为JMP参数是函数地址的相对偏移,所以这里先减去老函数入口地址,再减5
//注意函数的定义和原始函数一定要一样,尤其是调用约定,否则函数返回后将出错
//当需要调用原始的MessageBox时,直接调用此函数即可,参数完全相同
 //由于我们写入的Hook指令破坏了原函数开头的几条指令,所以将原来的指令复制到这里,在这里执行原函数的前几条指令 
//获取指定模块中指定API的地址
 这里计算一下要填充的指令
 根据要HOOK的长度不同及现场保护的不同要求,可以采用不同的HOOK指令
 通常远跳转最少要5字节,下面是常用的三种情况:
 当要改变的指令长度大于以上时,可以使用nop来填充
 //计算跳转偏移并写入
 

我要回帖

更多关于 8位为什么是255 的文章

 

随机推荐