EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
8 b1 R3 C* L' L$ D* s2 P例如 :      * X! P* g# c9 @* a
C021:  85 16  STA$16                           85 16     两个) r$ M. v2 p3 X
! J, l  Z, L  M$ ~6 f& l4 G! T
4 Y$ G8 q, N: ?1 R7 ?4 t. L
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:7 r/ l& Y9 P1 O% l# C! }
例如:5 f8 C& e) c6 R/ n
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个; N( s2 M; N5 O' h  F( G

; j( ?3 N' H  e" Q  u+ v; w0 @3 U$ V/ |
连续的数据是:
; }# F* H' R8 }7 I+ Y3 m$ s- ^3 |& V* o0 L; e& Y3 H3 E
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5* a8 G# y, [8 B1 m/ Z4 R" t

9 B0 Y% S/ g: u/ A& t9 U
, }4 E  ?+ N. n6 g! `$ @这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
; j* v/ Y, o' N1 U0 j3 d- v4 Y6 t- d+ j* |' _" I( T/ d
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
8 h7 w4 X3 P1 }0 w7 w
% z6 M% a& a: Q+ ?7 m就直接跳转, 然后在跳转地址这把前面修改的命令补全
& o) U& d* J( X" v: Y( t! X$ `; f
; d( {: p* d. G0 k跳转命令看这, 写的很清楚了$ K9 P: L+ p, V: w- D
http://shinwa.kami.blog.163.com/ ... 047200822563622456/
) E* Z5 l  W8 W/ u! [0 _* u- a
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1927 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    . o1 L3 H" D7 V* C
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    ! m' B, V0 Y6 J: W5 i& V  M  o
  3. A5 15 LDA $15  ->EA       NOP* I4 N$ I3 @0 j2 v" `6 |. [- D( d
  4. 85 17 STA $17* K; Y1 F, N' `" b  ?7 f( ~+ @, A
  5. A9 00 LDA #$00
    4 J+ N/ b1 A% Q  |! V+ {  Y

  6. 5 ^' p: w% L. B/ V
  7. F0BF:
    , y8 }, m- m6 @% @
  8. 85 16 STA $16
    + A0 e0 x3 y% _: f
  9. A5 15 LDA $15
    $ t, x" {3 @& k4 b2 C6 D
  10. .
    2 z% \( l  F4 Y$ X, v6 H
  11. .
    4 {. Q; {6 `2 |& h! `8 s
  12. .
    ) V4 g( r  X9 j4 Y" S! C; B
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
/ @& ~$ e3 k* X2 u& X
疾风之狼 发表于 2012-9-25 18:10
# a" L2 K* q4 ]9 P$ X2 D: {
2 @& a' E- U) A6 W+ `" s
狼大,我按照你的方法,不知对不。9 c$ U6 a4 F4 }9 F  A8 ]8 ]7 s

6 z) E) {' Y" E+ x2 h' x: \4 n& j+ Y2 f9 M
5 A2 b5 z0 t, r: x原数据
! _2 `8 F2 R' Y; P$ EC021:       85 16 A5 15 85 172 S  j) w: _: m" S, v& K
+ @. f) o! ?# [0 ?
修改后) V- C( a% u2 V8 I/ f# m/ j  F4 L
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
0 G( q" m$ N# @6 j+ @! r) i1 |- u* D, V5 a- L8 r! m

0 \) f/ j1 w# n- IF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
. _) k# g* n, j# y# v( d! L  K+ r# {

& [, U  h4 d+ {0 r# I
" a$ H0 L: j2 K. l& g我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
" [& [+ i4 d( N* h$ R3 E$ P
4 a" l7 g" x1 e& l看了money的文章后,这次我把前面的几句指令也列举出来:
' k, |* D! V8 Y3 h9 L$ z* S" GC01F: A5 14 LDA $14               :A=0x12
, Z+ G7 \  d' u4 r) MC021: 85 16 STA $16               :[0016]=A=0x12
! {% s( K5 V7 e5 F; z- y3 N# |  s- a7 y
根据文章的内容我是不是应该从C01F这个地址开始修改呢。  D9 F& c5 e$ u! L
我现在重新动手测试一下,有问题再来请教你们
( ^! S' y; o2 G
% n9 y. ^$ k. l7 S2 b. W3 X
  G% p0 J7 z+ h% S; C4 R7 X经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-22 07:46 , Processed in 1.276367 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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