首页
社区
课程
招聘
怎么改程序的固定内容
发表于: 2011-11-2 20:12 4376

怎么改程序的固定内容

2011-11-2 20:12
4376
例如有如下一句 MOV DWORD PTR SS:[EBP-DC],431F00
而431F00中是数据 "中国ADP" 我现在想把这里的 中国ADP 改成 "欢迎大家的光临" 不知道怎么改

我用hex可以直接查找 "中国ADP" 把他改为相同大小的其他文字 如"韩国aaa" 是没有问题的 但是我要是改的字符和这个的多少不相等就有问题了 (特别是更改的字符比原来的长的时候) 后来我用od就找到了上面类似的代码 但是不知道怎么改 谢谢大家的帮忙 (我知道这个问题一定有人问过 我在论坛和摆渡上都找了些但是还是不知道怎么弄 郁闷 )

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
后面字符串没有加 /0 吧
2011-11-2 20:17
0
雪    币: 1
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用资源修改工具直接修改就可以了
2011-11-2 20:30
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
找个大的空的地方写入你的 字符串 然后把0x431F00 改为你的新的地址
2011-11-2 21:21
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上的我按照你的方法 在程序的后面 空的地方 写下了自己的字符串 但是在更改上面的地址的时候od那里出现 未知标识符 错误 (我把哪个地方的地址改成其他的都出现这个错误) 还有就是这个字符串在资源里是看不到的 并且也不是加\0的问题 问题是我要更改的字符串比原来的长就出错 (短和相等不出错)
2011-11-2 22:17
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
关于哪个未知标市符解决了 MOV DWORD PTR SS:[EBP-DC],431F00
分开为 mov eax, 431f00 和 mov dword ptr ss:[ebp-0dc], eax 但是产生了新的问题 就是后面2条指令的长度比上面的1条的长度要多1 弄得程序的下一条指令被覆盖了 如何解决? 或者有其他的方法的 请不吝赐教!!!
2011-11-3 11:35
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你傻啊,出现未知标识符,八成是因为你的地址是一个a或b或c,d,f开头的十六进制地址,比如,你把431f00修改为a310f0,那么od就不会识别a310f0,因为od以为a310f0是一个标识符字符串,解决办法很简单,把a310f0前面加1个零,写成0a310f0,od就可以自动识别,知道这是一个十六进制的数字,就可以顺利修改了。因此也不需要改成mov eax,XXXX,然后mov XXX,eax那样把1条指令改成2条指令。
2011-11-3 12:55
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
至于你说的字符串长度的问题,有2种字符串,一种是以/0结尾的字符串,这个的长度程序是不知道的,知道出现了0,程序就识别为整个字符串结束。还有一种字符串是一个数据结构,大概是首字节表示整个字符串的长度,比如首字节为8,就表示后面8个字节是这个字符串的内容。估计你说的是第二种情况。所以要修改整个字符串的结构,包括首字节具体指示整个字符串是多长。当然,这个字符串结构也许不是象我说的这样具体,大概就是这么一个意思,具体结构要翻资料。
2011-11-3 13:00
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
嘿嘿 按照你的的确可以改 我再去试试具体的能不能解决 我最开始还以为不能出现这样的语句呢...MOV DWORD PTR SS:[EBP-DC],431F00
2011-11-3 20:07
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好想是这么回事 我发现调用 strcat函数后字符串的结果的长度和以前的一样
push eax  //路径
push 0043227a  // 文件名字 (我要改的 以前是3个字节的名字 现在是10个)
call ebx //调用了strcat
最后的结果里面 只有路径+文件名字的一部分 好象自动被剪断了
怎么回事?
2011-11-3 20:14
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
根据 4 6 8楼的高手的指点终于搞定了
唉 发现有人指导就是快 自己一个人在那里弄都不知道从何处开始 谢谢大家的帮助 另有无人要收徒弟啊 我都快饿死了 找个师傅养我 有的发消息给我
2011-11-3 22:31
0
游客
登录 | 注册 方可回帖
返回
//