EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
% n0 h; B& D& `例如 :      
" M5 |& s& x8 O$ P+ @" T C021:  85 16  STA$16                           85 16     两个
% \  h0 l/ Q0 z: z0 U3 S
8 n# u4 W6 ]$ t3 ~; @- [) \
' `7 J$ j! m' D# q# E然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:) o* E9 z9 q$ m" c6 i/ M" Y2 H
例如:
; P- T/ |, |, o9 D8 z3 R6 v, v* T7 VC021:4C BFF0 JMP$F0BF                   4C BFF0   三个: ?$ J. {$ e) y6 w, X& h
; {0 c- f" K  s

7 N) }! C: x8 S连续的数据是:: P, Y6 |$ @, l# m: {

7 N" i, R. s0 S, hC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
! L- E- r+ A! E) Y- L; c0 }, g. B9 r& y3 [9 u3 D+ Q" D
. I$ V5 [! I9 f( j* r9 m; W+ O
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
  w6 G" t) h& A8 m: m$ p5 l6 n) L& m, r9 Q3 T$ E% {$ L* J
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 $ A8 o% {, n6 A/ Q  G$ J" Y

  i6 {7 t( e$ J4 U7 m) q( {0 z就直接跳转, 然后在跳转地址这把前面修改的命令补全! W% s5 h& h6 ^8 H
2 `6 A; Q/ j8 m" |
跳转命令看这, 写的很清楚了
4 K8 I1 d2 H& s: Z2 E* xhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/& i, [3 n5 t3 d4 E
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2072 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:* \: m- d( \0 y) L7 V! t% L# |
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    3 E- {4 J% W2 R2 G& ?, e) {, \1 j
  3. A5 15 LDA $15  ->EA       NOP8 m, M" a7 \0 L, t# p! P; d
  4. 85 17 STA $178 K4 h& R! ?3 H/ h$ l* w
  5. A9 00 LDA #$00
    # c: d$ d- S+ z: W/ V7 o' J
  6. / O- L2 D, {: e' M( [
  7. F0BF:5 U- s, U4 Z3 i! i) x( O- ~6 \
  8. 85 16 STA $16
    * e7 b6 l% Q3 a; {
  9. A5 15 LDA $15
      ~" O/ v1 Q$ R+ V
  10. .
    ( t1 T$ e& X" ?1 u
  11. .
    3 H% ]: r! z( p9 L' K
  12. .% F$ S# d; W5 t: ?9 ~  C
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
( N0 i- t& P+ G4 X. B0 d( [
疾风之狼 发表于 2012-9-25 18:10

$ O9 w7 D* Y4 b, N4 z5 o
2 j1 t! y  G6 y. p8 [4 r狼大,我按照你的方法,不知对不。" b% c% b; q- U, m7 ~# V( q

0 d) z8 ^. F6 ?( p/ T7 O
8 q$ J' F. r' p3 c- G7 Y原数据0 d& D. F2 M3 C- w- k' `: G* O
C021:       85 16 A5 15 85 17- V- e6 O2 H" Z, ]

+ g* r7 E, T& w) _  p4 k. g修改后
6 W, l* ]5 o  MC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
0 V* s4 O- J% T' G- S
: d0 R: h4 f" W' q" {0 I" Z# _# @. h" v
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
# Q( B% n* u# m2 g+ r* [6 [0 h+ s) t

4 _, t3 H( @# r: q" d. J+ N# t0 P+ E3 |. L$ ?% M
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
% r# J- a# K! e, c5 X" d9 H- l8 ^$ q( ]. D# x) O  D
看了money的文章后,这次我把前面的几句指令也列举出来:7 x! t- k' l) r1 g' ^+ V
C01F: A5 14 LDA $14               :A=0x12
+ \" A/ Y' C0 d, y/ u, FC021: 85 16 STA $16               :[0016]=A=0x12$ |: T0 W" H0 E

$ o( ?1 @5 u( i. K3 q4 t2 C! U根据文章的内容我是不是应该从C01F这个地址开始修改呢。6 S; A: `4 g% L1 \4 R  W" g$ ?& r
我现在重新动手测试一下,有问题再来请教你们
# a$ U# r) ]% y
6 o- H5 R: e0 n4 O! m( {: F+ X. U' b+ g; |, b
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-16 00:53 , Processed in 1.093750 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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