能力值:
( LV2,RANK:10 )
|
-
-
2 楼
后面字符串没有加 /0 吧
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
用资源修改工具直接修改就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
找个大的空的地方写入你的 字符串 然后把0x431F00 改为你的新的地址
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
楼上的我按照你的方法 在程序的后面 空的地方 写下了自己的字符串 但是在更改上面的地址的时候od那里出现 未知标识符 错误 (我把哪个地方的地址改成其他的都出现这个错误) 还有就是这个字符串在资源里是看不到的 并且也不是加\0的问题 问题是我要更改的字符串比原来的长就出错 (短和相等不出错)
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
关于哪个未知标市符解决了 MOV DWORD PTR SS:[EBP-DC],431F00
分开为 mov eax, 431f00 和 mov dword ptr ss:[ebp-0dc], eax 但是产生了新的问题 就是后面2条指令的长度比上面的1条的长度要多1 弄得程序的下一条指令被覆盖了 如何解决? 或者有其他的方法的 请不吝赐教!!!
|
能力值:
( 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条指令。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
至于你说的字符串长度的问题,有2种字符串,一种是以/0结尾的字符串,这个的长度程序是不知道的,知道出现了0,程序就识别为整个字符串结束。还有一种字符串是一个数据结构,大概是首字节表示整个字符串的长度,比如首字节为8,就表示后面8个字节是这个字符串的内容。估计你说的是第二种情况。所以要修改整个字符串的结构,包括首字节具体指示整个字符串是多长。当然,这个字符串结构也许不是象我说的这样具体,大概就是这么一个意思,具体结构要翻资料。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
嘿嘿 按照你的的确可以改 我再去试试具体的能不能解决 我最开始还以为不能出现这样的语句呢... MOV DWORD PTR SS:[EBP-DC],431F00
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
好想是这么回事 我发现调用 strcat函数后字符串的结果的长度和以前的一样
push eax //路径
push 0043227a // 文件名字 (我要改的 以前是3个字节的名字 现在是10个)
call ebx //调用了strcat
最后的结果里面 只有路径+文件名字的一部分 好象自动被剪断了
怎么回事?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
根据 4 6 8楼的高手的指点终于搞定了
唉 发现有人指导就是快 自己一个人在那里弄都不知道从何处开始 谢谢大家的帮助 另有无人要收徒弟啊 我都快饿死了 找个师傅养我 有的发消息给我
|
|
|