能力值:
(RANK:410 )
|
-
-
2 楼
检查一下6C379DF0的区段是否可读可写。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
问个白痴级的问题,怎么看内存是否可以读写?
我用WriteProcessMemory写入与程序自己写入有什么区别?
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
还有你修改的是不是DLL文件,要注意重定位
如果你用OD跟,你确定6C379D0C MOV [6C379DF0],EAX (这是我插入自己的指令)这条指令没有错,但程序运行到这会出错,就说明那段内存是不可读写的
|
能力值:
( LV9,RANK:290 )
|
-
-
5 楼
除了要注意该内存是否可读与可写外,
还有注意一下你打开进程时(OpenProcess)
用的参数是否是PROCESS_ALL_ACCESS,
不然的话也会出错的
另:一系列保存寄存器可以用pushad与popad来代替
这样少写几行指令了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
用PE工具看,如果不可读写,就更改区段标志
入栈,出栈用
pushad
popad
好像比较方便
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
我把MOV [6C379DF0],EAX这条指令去掉后,其它指令依然不变的话(地址和跳转指令的机器码相应改变),工作是正常的呀,为什么只是加了这条指令后就出错.哎,晕了....OpenProcess的权限就是PROCESS_ALL_ACCESS,我检查了三遍,而且如果不是,就不会有这样的事情了,那会是从一开始就错误.MOV [6C379DF0],EAX的指令也没有错误.用OD反编回来的是DB (机器码16进制数),我查了相关资料,说这是OD脱壳的后遗症,于是我用CE查看,代码没错。头大..。
我修改的就是DLL的文件,DLL文件重定位是什么意思,怎么操作的。而且这需要重定位吗??
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
问题已经得到解决,非常感谢大家,兴奋之余,激情付诗一首,如下:
沁园春.血
---作者:萨达姆
美 国 风 光, 千 里 兵 疯, 万 里 血 漂。
望 纽 约 内 外,废 墟 莽 莽;白 宫 上 下,顿 时 逃 逃。
你 舞 战 斧,我 施 冷 枪,真 主 上 帝 试 比 高。
须 晴 日,看 曼 哈 顿 岛,分 外 萧 条。
石 油 如 此 稀 少,引 无 数 枭 雄 竞 折 腰。
惜 阿 尔 道 夫,功 亏 一 篑;东 条 英 机, 两 弹 魂 消。
一 代 天 骄,拉 登 老 弟,只 识 驾 机 撞 世 贸。
俱 往 矣,数 风 流 人 物,还 看 锦 涛 。
|
能力值:
( LV9,RANK:170 )
|
-
-
9 楼
楼主能说下到底怎么解决了么?
是重定位的问题么?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
是啊,楼主说说怎么解决的吧.
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我是发现我MOV的地址不可写,所以重新找了一段内存MOV进去就可以了
|
|
|