查找和编辑二进制文件中的unicode十六进制字符串
Find and edit unicode HEX-strings in binary file
我有一个VS2013项目的二进制文件,使用Unicode编译。现在我需要在这个文件中找到一些数据字符串并替换它们,使用我的实用程序。我的想法是在十六进制编辑器中搜索这些字符串,查看它们的地址,然后使用winapi CreateFile/SetFilePointer/WriteFile简单地更新这些数据。但是有一个问题。首先-我找不到这个字符串在十六进制编辑器(因为unicode),现在我不知道如何更新它们,因为unicode字符是两个字节长。
所以我使用WinHex并找到我需要的数据字符串,使用Unicode。然后,我找出了每个字符串的偏移量。然后,只需在所需偏移量处写入数据:
TCHAR data[MAX_APTH *2];
DWORD dwWritten = 0;
m_sStr = m_sStr.Trim();
offset = 0x00012F12;
wcscpy_s(data, m_sStr);
SetFilePointer(hFile, offset, NULL, 0);
WriteFile(hFile, data, wcslen(data) * sizeof(TCHAR), &dwWritten, NULL);
//WriteFile(hFile, L" 0", 100, &dwWritten, NULL);
看起来没有我想象的那么难。
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 指向存储在字符串 c++ 中的十六进制
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C ++如何使用UTF8十六进制代码打印UTF8符号?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何在C++中将十六进制字符串转换为文本数据
- 使用 sprintf 将十六进制0xAABBCC转换为字符串"AA:BB:CC"
- 如何在C++中从十六进制字符串输出 Unicode 字符
- 如何将无符号十六进制值转换为相应的unicode字符,这些字符应该使用c++写入文件
- 将字符串转换为Unicode十六进制表示形式,然后返回C++
- 如何将十六进制代码值转换为unicode字符
- 查找和编辑二进制文件中的unicode十六进制字符串
- c++在十六进制中检索Unicode码点