获取字符串地址中的16进制内容

bm425 2013-06-03 11:55:11

我想获取红色框圈起来的内容,把这部分内容存入字符串中
...全文
143 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2013-06-03
  • 打赏
  • 举报
回复
好像理解错楼主的需求了. 换一段代码:
byte *p = (byte *)0x07BC0074;
char sz[320], c[3];
memset(sz, 0x0, sizeof(sz));
memset(c, 0x0, sizeof(c));
for (int i = 0; i < 150; i++)
{
    BinToHex(p++, c, 1);
    strcat(sz, c);
}

ShowMessage(sz);
ccrun.com 2013-06-03
  • 打赏
  • 举报
回复
红框圈起来的数据中有很多0x00的数据, 这是存不到字符串中去的.
byte *p = (byte *)0x07BC0074;
byte bt[200];
memset(&bt, 0x0, sizeof(bt));
memcpy(bt, p, 150);


然后数据就存在bt里面了.

补充一下: 由于是直接读内存, 不保证不AV.
缘中人 2013-06-03
  • 打赏
  • 举报
回复
你是用什么方法读的,是char *还是 string
bm425 2013-06-03
  • 打赏
  • 举报
回复
各位大神,有没有好的办法啊! 急啊!急啊!
ccrun.com 2013-06-03
  • 打赏
  • 举报
回复
三个字: 必须的.
bm425 2013-06-03
  • 打赏
  • 举报
回复
程序可以使用,获取内容成功了。
bm425 2013-06-03
  • 打赏
  • 举报
回复
我就是没有想到使用byte
bm425 2013-06-03
  • 打赏
  • 举报
回复
高手就是高手啊! 谢谢了! 方法很有用
ccrun.com 2013-06-03
  • 打赏
  • 举报
回复
那肯定是有办法啊. 这是多大个事, 还以为抢鸡蛋呢.
#include <stdio.h>

byte *p = (byte *)0x07BC0074;
char sz[320], c[3];
memset(sz, 0x0, sizeof(sz));
memset(c, 0x0, sizeof(c));
for (int i = 0; i < 150; i++)
{
    sprintf(c, "%02X", *p++);
    strcat(sz, c);
}
bm425 2013-06-03
  • 打赏
  • 举报
回复
有没有办法啊
bm425 2013-06-03
  • 打赏
  • 举报
回复
肯定是想使用存SDK来解决了
ccrun.com 2013-06-03
  • 打赏
  • 举报
回复
引用 6 楼 bm425 的回复:
BinToHex(p++, c, 1); 是什么函数啊?
是VCL中的函数,你想用纯SDK来解决么?
bm425 2013-06-03
  • 打赏
  • 举报
回复
BinToHex(p++, c, 1); 是什么函数啊?
bm425 2013-06-03
  • 打赏
  • 举报
回复
我使用的是char*

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧