首页
社区
课程
招聘
程序中的字符串数据存放在什么地方?
发表于: 2011-5-27 18:47 4034

程序中的字符串数据存放在什么地方?

2011-5-27 18:47
4034

用C32ASM反汇编一个程序,到了显示版本号的地方如下:
::00430D7B::  68 80594D00              PUSH 4D5980       \->: Version 1.58
::00430D80::  8D8D C4EFFFFF           LEA ECX,[EBP-103C]                     
::00430D86::  FF15 7C474D00          CALL [4D477C]  >>>: MFC71U.DLL:MFC71U:NoNa

它PUSH了一个地址,然后运行到CALL时会在程序里显示“Version 1.58”,请问这个字符串存放在什么地方?是在程序体里,还是在别的什么地方?找那个PUSH的地址找不到。我是想修改版本号为别的,怎么搞?!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 191
活跃值: (130)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
这个应该是个字符串常量,通常放在常量区(数据区),属性为可读不可写(修改内存属性就可写了)

http://bbs.pediy.com/showthread.php?t=134555  简单的说下下常量的,在后面字符串部分有一点点的说明,要是不足满足你的需要可以提,我在补充。
2011-5-27 19:56
0
雪    币: 210
活跃值: (56)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
命令行里输入D 4D5980  就能看到你想看到的了!基本上全局变量存放在.DATE断里,所以是放在程序里的!当然有的软件会读取外部文件的数据,那就是另当别论了
2011-5-27 19:59
0
雪    币: 114
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢上面两位朋友,在OD中用D 4D5980查看的确是看到了那个字符串,搞了半天是UNICODE字符,怪不得一开始在UltraEdit中找ASCII没有找到。
2011-5-27 20:39
0
游客
登录 | 注册 方可回帖
返回
//