设为首页收藏本站

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
+ J0 [% E8 k0 U5 ^例如 :      - P# D$ \$ R2 Y0 z9 m* e  F& a
C021:  85 16  STA$16                           85 16     两个( S7 C. t( M8 E

7 [* W* U) _4 Q8 k' x5 k# D% b. |+ W  B0 e. S
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:5 r/ _8 _2 X) q0 O# r
例如:6 i' L: l7 D6 _  Y: _) {
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个0 Y- [/ k+ h4 e7 t# A! o

0 E7 K7 Y  m* P" \2 |
4 r+ n7 V9 {  |0 H9 ^连续的数据是:
4 n7 v/ k% @& g$ N; Z7 X
' E- D1 G8 P5 z0 L3 q; U3 _C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
2 ~- Q( P- h5 V8 Z) Z% B
0 R$ \/ s: c* f. s9 c: t) C  d% X8 T6 O
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
" _; i; ]) @( b$ W, ~  A) D5 V: A$ P2 P' D5 {. A( T; K
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
1 ]" v8 N- ~& t0 H& W: h- j9 t
/ n( Z) l  Q* p- O% e就直接跳转, 然后在跳转地址这把前面修改的命令补全
  H, ?9 B% x. D7 W: _  P4 j3 W3 U; R( ?" `7 b  Q# M
跳转命令看这, 写的很清楚了6 S1 M; B1 @0 l  g/ a
http://shinwa.kami.blog.163.com/ ... 047200822563622456/
6 C4 v  s9 C: U; Y% c
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 2013 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    % @( A+ }7 W4 q$ m5 `
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    1 {2 X: W$ t2 k' L
  3. A5 15 LDA $15  ->EA       NOP
    # v8 S! Y: P; ^) u
  4. 85 17 STA $17
    & A7 X6 y) e+ c7 e9 _; I
  5. A9 00 LDA #$00
      X, u  D/ b* O; Y1 T2 m) N
  6. ; o8 Z( V, p& a2 {4 j4 G0 V1 w1 O
  7. F0BF:1 e) d  S$ E1 }( }* m! p* H5 u, b
  8. 85 16 STA $16) O( D0 X0 \8 R) M: q- E
  9. A5 15 LDA $15
    ) e# w; \1 Q4 r9 u
  10. .8 A+ h/ @) @; t; e6 \, x' @+ T' |
  11. .
      O0 n( t3 i; h+ x/ A# C9 _
  12. .
    ( F4 d: W7 y+ i7 g( P
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 3 e4 u; j  m# m, i1 Q2 j$ W
疾风之狼 发表于 2012-9-25 18:10

+ @! E7 c2 Q+ [% G2 I" k
7 [4 {  A$ l- V" ~7 H0 e狼大,我按照你的方法,不知对不。" u& `. c" o2 F$ H5 @+ L

1 g! K3 _" j' j& Y0 c
$ n5 j0 o7 N1 Y3 g( ^! u原数据- C- l: c/ u% e( j8 w
C021:       85 16 A5 15 85 17
1 m; {% u* j5 L. h9 E7 c- d2 z. u$ t, d
修改后
, I* O  C$ y3 g; ~: J; e3 eC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
( {6 U/ R9 K3 s1 G+ |; |! r2 f7 p( T& R  ]2 k1 m

4 f* _5 M1 j1 i4 pF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025" H' C' B5 w! ?! [7 v. N6 r6 }

$ g, L+ l4 g& l/ Q" I7 O/ M. y4 N4 K2 h1 C8 ?

/ W: l$ _' |0 W- M; D$ e1 S) X我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。
回复

使用道具 举报

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 / {5 |5 T1 O) ^! v, L, x& y

3 H" P% o: q9 |* W0 g9 q+ s* q看了money的文章后,这次我把前面的几句指令也列举出来:5 F, F' j  V: I1 r9 ^: T# l, `
C01F: A5 14 LDA $14               :A=0x12
8 S  I( f9 w# gC021: 85 16 STA $16               :[0016]=A=0x12
( L; h1 C7 t3 _. r! }
% u4 v0 c3 V; K3 m& d# k! E根据文章的内容我是不是应该从C01F这个地址开始修改呢。
. h  o# C, e1 C0 W+ [我现在重新动手测试一下,有问题再来请教你们* ?, Q/ y: c* y$ ]1 m* Y& k

2 a' f# Y1 p6 I/ ~8 g& w
9 Y9 K. `  c- Y经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-7-16 16:52

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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