很久以前的问题,记得那是分析某个游戏的时候的事情了,当时想搜索游戏里的 “目的地” 这个字符串变量,结果发现在游戏里经过几次变量的变化后,变量存放的内存地址就会发生变化(也就是这个地址存储的值变成了乱码)目前猜测有两种可能:
1.变量没有找对。
2.游戏使用一个数组存放一些关键数据的 “地址” ,但是这个地址是动态的(每次数据变动都分配新的地址)。

先来验证第一种情况,我写了一个简单的 mfc 程序,代码如下:

static CString s;void CTest_MFCDlg::OnBnClickedButton1()
{GetDlgItem(IDC_EDIT1)->GetWindowTextW(s);
}void CTest_MFCDlg::OnBnClickedButton2()
{MessageBox(s,NULL);
}

附加到 ce ,在文本框里输入几个字(要用中文,先不点击 “赋值给变量” 这个按钮),搜索对应的值:

什么都没有找到 ~ (难道是勾选了 “fast scan” 快速扫描的原因 ?),取消勾选快速扫描,并选择扫描时暂停:

依然没有 ! 难道是没有使用 Unicode 编码 ? 不可能,自己写的代码怎么会不知道编码方式?

不服? 去掉勾选 Unicode 再搜搜试试 ?

嗯 ~ 可恶 !不简单嘛… 冷静,是不是因为这个值没有被赋值给某个变量 ? 导致不在内存中存在的原因 ? 点击 “赋值给变量” 按钮再试试。

果然还是不行,无所谓了我已经习惯了。嗯…刚刚搜索的是 4 个字,我现在只搜索 1 个字 “啊” 呢?(已经不考虑逻辑开始瞎猜了)。

但事实发现瞎猜是有效的,搜索到了,为了控制变量,重启程序在不点 “赋值给变量” 按钮的情况下搜索 “啊”:

没有问题,说明 ce 是否能搜索到数据和这个数据是否被赋值给一个变量没有关系,或者是它本身就已经默认被编辑器赋值给了一个对象都有可能,但是这不是我们考虑的范畴。为了看得更加直观,把所有的值都放到编辑区域,并修改变量的长度:

发现可疑的地方: string 的长度已经增加了,为什么后面的 “啊啊啊” 没有显示出来?难道它们不是连在一起的?难道 C++ 语言的 String 本质上是一个 char[] 里面的元素在内存里这里存一个,那里存一个?虽然有疑心,但是不敢确定,暂且放一放。改变文本框内的值,观察这些数值的变化:

真是稀奇百怪的什么都有啊,但是大部分是 “四” ,试一下修改 address ,看看这个 “四” 之前有没有内容:

大部分修改之后都变成了乱码,甚至按照原来的地址再改回去,也变成了乱码! 说明这个方向走错了,如果继续下去的话只能越来越乱,打住。CE 里还有另一种搜索字符的办法,就是 Array list 字符数组,这种办法是不是可以奏效呢?先用工具查:https://www.sojson.com/hexadecimal.html 对应的 16 进制:

这里注意,因为 windows 是采用 “大端存储” 高位存放在低位,所以在 ce 里输入的时候应该写成 “00 4e 8c 4e”:

有数据,还是拉下来,改为 text 看看是不是 “一二”:

没有问题,改变文本框内的值:

有希望!依次重复以上操作,删除不符合的地址,最后得到了稳定的结果:

结论:CE 对中文搜索的功能还有一定的缺陷 ,在搜索字符串时需要使用 Array Of Bits 进行搜索,搜索时要注意 “大端存储” 的规则。

CE 无法搜索中文字符串变量的解决办法相关推荐

  1. 关于request取中文字符串变?的解决办法

    从页A传递参数到B页, 用LCName.Text = Request["CName"].ToString();读取,发现最后一个中文字会被去掉或变成"?"号. ...

  2. 解决 python用 xlsxwrite 向excel 中写入中文字符串变量 报错

    问题:  UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 7: ordinal not in range(12 ...

  3. IDA Pro 搜索中文字符串

    IDA Pro 搜索中文字符串 IDA 的字符串窗口默认只能显示英文,网上的一些方法是指定启动时的参数可以显示中文 ida64 -DCULTURE=all ida -DCULTURE=all 还有就是 ...

  4. get/post时中文乱码问题的解决办法

    get/post时中文乱码问题的解决办法 参考文章: (1)get/post时中文乱码问题的解决办法 (2)https://www.cnblogs.com/opaljc/p/3807786.html ...

  5. redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法

    redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法 事情的经过是这样的 记得以前曾经在VMware 5.5.3 上装过redhat 估计是9吧 当初我选的是图形 ...

  6. OpenCV中文路径问题、matplotlib可视化中文乱码问题的解决办法

    OpenCV中文路径问题.matplotlib可视化中文乱码问题的解决办法 OpenCV中文路径问题 读取图片 其中img_path为读取图片路径,可以包含中文 img = cv2.imdecode( ...

  7. [Unity][FlowCanvas] FlowScript 搜索功能不可用的解决办法:更新 UnityEditor 的版本

    FlowScript 搜索功能不可用的解决办法:更新 UnityEditor 的版本 我原来的版本是 2020.3.0f1c1,装了一个 2020.3.9f1c1 就正常了 好神奇 图1 搜索功能不可 ...

  8. eclipse中js中文乱码问题的解决办法

    eclipse中js中文乱码问题的解决办法 参考文章: (1)eclipse中js中文乱码问题的解决办法 (2)https://www.cnblogs.com/yanggb/p/11719126.ht ...

  9. VisualAssistX中文注释提示错误 解决办法

    VisualAssistX中文注释提示错误 解决办法 Visual Assist X中文注释为提醒注释错误,而且在注释下面以红线标识,如下图: 这是因为Visual Assist X认为中文的注释是拼 ...

最新文章

  1. VUE-生命周期钩子
  2. Oracle中对现有表增加列
  3. 职称计算机windows 7,2017职称计算机考试Windows训练题
  4. 小白如何入门Mybatis?这里有答案
  5. 【WP 8.1开发】解决摄像头翻转问题(RuntimeApp篇)
  6. 按条件分类_保税仓储企业能否同时存储非保货物?“仓储货物安装台分类监管”如何申请?...
  7. 5799元!OPPO Find X5 Pro天玑版即将开卖:性能比肩骁龙8
  8. php pdo mysql 预处理_PHP PDO mysql 处理类(prepare 预处理)
  9. Android开发——联系人中几种常见的mimetype、几张常见表的Uri
  10. win32多线程(三) 死锁
  11. JAVA开发一个合并单元格报表_快逸报表动态合并单元格
  12. 口碑点餐相关问题FAQ
  13. 角色与使命:学生干部如何平衡工作与学习的关系?
  14. 关于条形码,你知道多少?
  15. 黑灰对比可以为高大上网站风格代言
  16. 百度新闻爬虫搜索引擎实战---爬虫篇(2)
  17. superset详解(二)--sql工具箱
  18. 微信小程序 获取用户的昵称和头像
  19. vue 一个动态链接url转成二维码
  20. 基于色彩恒常( color constancy)特性的Frankle-McCann Retinex图像增强

热门文章

  1. oracle同一个库不同用户,oracle同一个库上面,不同用户相互赋予权限
  2. java插入图片_如何在java窗体程序中添加图片
  3. 计算机如何打开office,win10电脑没有office软件如何打开ppt文档
  4. 迅雷9窗口右侧的内置浏览器如何去掉。
  5. Python与Anaconda、Jupyter Notebook与Pycharm
  6. 【车载】轮速-AK协议
  7. 我还年轻——献给37岁的自己
  8. [整理][VBA]Excel合并表格
  9. Logger.error不打印错误堆栈信息问题
  10. 学习方法之08克服拖延症,及时快速地完成任务