EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据0 {2 D* g; ^4 V! Z1 F" p
例如 :      
9 N" U! H0 L, N; p( e0 { C021:  85 16  STA$16                           85 16     两个$ E/ [) r; |  o4 e- C; x
% R1 V0 X" c4 ?: O) o
- O: n0 D  D& R  n* p
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:/ ]3 M! ]7 U) A( {1 Q- y& G
例如:
, V: a( W& [+ D. M7 R7 t1 vC021:4C BFF0 JMP$F0BF                   4C BFF0   三个* ~4 `5 \# X7 w1 }
- [0 T/ T8 @' j5 o7 B

" Q/ s8 z7 I( ^" ~' }( w, D连续的数据是:
7 f- }* D* v3 F% ]# @1 T7 R
2 F' R- f; x. b6 L  R- R+ h& _C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
' p( k0 U, }. q9 g7 [& t2 A" l' L4 h3 J

7 ]4 l$ C* i6 ^! Z/ B这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
/ i% w6 v, K2 M/ J# G6 `, f0 ]! [  w1 C; S" e
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
! \0 t% ]: l% z, Y, m6 M3 F# R; d9 v6 O' `6 l# Y7 U9 K
就直接跳转, 然后在跳转地址这把前面修改的命令补全: a8 X; t' N9 K1 U! J# I

: @4 P0 q/ X2 `/ |6 S# I跳转命令看这, 写的很清楚了
4 f( e) [7 _3 c" h! q6 dhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
1 S  s# i+ g  y) y  a4 t
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2049 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:  N# Y6 {3 U) a6 m9 |) y% Q
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    6 Q) z0 E# u/ n- [+ H
  3. A5 15 LDA $15  ->EA       NOP1 ?$ ]6 c5 S8 Q* z
  4. 85 17 STA $17
    : d0 ~7 T7 t- u/ E! X5 d
  5. A9 00 LDA #$00' j2 U7 a& n; x- p: w) ^& ~* W+ t

  6. 2 @! b; M, q6 d1 S5 K- {
  7. F0BF:
    3 \: O7 \$ t+ f
  8. 85 16 STA $16
    2 M5 S( ^$ F1 g& v3 _1 q
  9. A5 15 LDA $15
    4 }4 c! M# b3 r( i3 N  {
  10. .
    / q0 V) s" y3 @; H6 J& d6 b4 i
  11. .. w' K$ j: R, \) f; K
  12. .; t$ ?8 R5 e# l' C7 o3 E
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
( x( U1 T4 A$ q% R5 z- g9 m9 O
疾风之狼 发表于 2012-9-25 18:10
/ g. ^- {$ O. Y: |0 m+ Q
: @5 u* _) [9 a: Z$ ^/ u
狼大,我按照你的方法,不知对不。. N3 x5 h, C3 q. G9 o

. d  T' a$ }: l
! V' a5 b/ k3 [; g原数据
: a( N( x$ b* q+ T# w& sC021:       85 16 A5 15 85 17- k+ ?+ ?" U/ F
5 e: P8 M1 P1 b- G# i) y1 l
修改后/ K  E$ W2 |* |, z7 i' c4 N
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
* p3 ~8 s& p/ ]4 n- t
4 ?) A4 D/ `/ ]# @- o( ^6 a  b% K+ d6 J1 B: l1 I
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
4 s% [5 y. i' @4 E$ B9 C5 X
- N1 N9 W! _. p, m" o
( N! C4 d( i9 W8 y7 Z$ m2 U" e( D1 E( ^) `
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
1 y. N" d6 g+ W. A- d' }& L) g' p4 G
7 |" W0 a( [; c1 ~看了money的文章后,这次我把前面的几句指令也列举出来:
) M4 Y: \/ H6 b4 MC01F: A5 14 LDA $14               :A=0x12
" x6 k- p8 Y5 r0 L$ kC021: 85 16 STA $16               :[0016]=A=0x12$ J0 a5 X1 n! x. E, r
" ]9 ~2 A5 S4 H* R
根据文章的内容我是不是应该从C01F这个地址开始修改呢。: B, d; s  y0 ^8 T" T3 v
我现在重新动手测试一下,有问题再来请教你们
# D8 D: ]5 [" s0 Q  q0 o* v+ Y% N( X( v/ b/ P, y: e+ x5 k

) l2 i3 r6 w) f经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-24 11:23 , Processed in 1.075196 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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