EMU618社区

 找回密码
 立即注册
搜索
查看: 822|回复: 4

[求助] 某种特殊情况下该怎样解决?

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
4 J) |# k! ~) V8 z8 R/ Y+ M" F2 \例如 :      - f+ ]7 d6 j) V1 d/ C1 y3 Q* w
C021:  85 16  STA$16                           85 16     两个" h& V) Q! w$ h- W5 [5 n1 C& z

7 [2 W. G& T3 o/ Z  X% U
- j& y1 c$ l  x6 Y: r7 _* C然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
( I8 B+ x9 F' s) Z例如:
! u5 e9 Y! X  A/ _: {C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
$ p5 P+ B5 y, v, _$ g3 {5 g4 q' C1 a2 M2 V
7 ~8 v- P% y% y; u! U5 g
连续的数据是:! m$ Z7 J% [' ~! m- T' u

8 d; ~: m3 a1 B1 F; ~C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
5 {$ V! N8 \- _0 A3 A8 a" K8 S# S( y
+ g) I/ y7 }# f) i3 p( i1 s; I5 K2 B4 `0 f
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?$ P5 c) j+ c+ v, m/ w# l

9 C8 i; Y; H" h. D$ X不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 7 O# i8 v$ O6 W6 k5 \, y+ D. R
$ m+ s) @, Q- o' o/ i# w' B# p
就直接跳转, 然后在跳转地址这把前面修改的命令补全, z7 D  J" F, P1 i8 g$ _2 @$ d

1 {0 J1 V3 T1 H跳转命令看这, 写的很清楚了3 @4 |- r6 y) @  W* \: y) Z+ ~
http://shinwa.kami.blog.163.com/ ... 047200822563622456/3 N! |0 q& k5 y' a' |3 {
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2160 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    $ v+ {) j6 Z: O- G- y7 ~9 H
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF0 U+ U% K# q( _0 e- j6 c( J: n" Z
  3. A5 15 LDA $15  ->EA       NOP6 h' G+ i% P& s7 I: H3 A3 g
  4. 85 17 STA $17) s. F' \+ j2 G! w
  5. A9 00 LDA #$00
    2 [/ o4 j& w: F8 d2 Y0 P; Y
  6. ( N/ `; G8 \7 Z  O
  7. F0BF:+ T0 w$ G3 R! j9 h
  8. 85 16 STA $16
    " W% b* }+ L( \7 X  V) |; c% e
  9. A5 15 LDA $15
    0 G' x  J- F, G- o
  10. .
    2 g9 f9 G; U4 p7 u- ~: H) P
  11. .; ~& ~! P: d0 ^: ?4 W
  12. .
    ' s0 \6 @4 J! n; k2 a
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 - v" c; W6 B9 l: _. J
疾风之狼 发表于 2012-9-25 18:10

5 y2 G* C* p# L1 v& F3 G5 Z+ T" K: ?$ F1 O5 V5 `1 i, d
狼大,我按照你的方法,不知对不。2 n  m' G& D; B8 k- w

4 u6 P; h. n9 f" n4 S
  a  B+ P8 |; h1 p原数据
) s$ g% o5 v2 h8 t) B7 \: uC021:       85 16 A5 15 85 173 k+ c8 K0 e# K1 Z3 ~/ p& {2 _
- E9 H0 ?# X+ j. {. G2 g+ z+ ~8 }
修改后: W# p5 h% |% H/ E
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF3 }' V1 ~3 z9 I

$ e) o& K; B3 c, j; t4 a$ p
; g$ V9 ]9 n( b3 g8 k* jF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
3 ?2 \& m1 z1 F: `' j( {  ?( |. {2 `) j' ]) d# r4 {

& e* U) \6 ?" O; k/ T5 \4 J7 j
7 r: f8 M& e9 m我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
6 x0 a6 p& C# T9 l* Q" @6 ]3 X, d; D- c1 g2 c" H# t
看了money的文章后,这次我把前面的几句指令也列举出来:
7 R2 ?! j" P. ~/ l& T3 J6 C; B# VC01F: A5 14 LDA $14               :A=0x12( V1 Z+ P3 c' v6 V& [( Y
C021: 85 16 STA $16               :[0016]=A=0x122 W0 A& b9 F4 {3 w
3 V, n" \( G# W
根据文章的内容我是不是应该从C01F这个地址开始修改呢。
; B7 c/ K# T2 r5 Z1 l0 n我现在重新动手测试一下,有问题再来请教你们
/ ]  @# y$ R6 p. R  b/ l0 ^1 _. l8 K0 F' X  g
  H, `4 e5 ^" w4 l; Y2 k( H; Z
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-12-14 16:22 , Processed in 1.067383 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表