EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
+ h. D( k: y1 Q) q例如 :      
; q5 s: h5 O7 T. c" q C021:  85 16  STA$16                           85 16     两个
+ x; c( ?7 A* u4 F% u8 f' B& l% f! n9 _+ w0 t

* ]* O4 t; q8 e1 b9 M然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:1 F+ x/ X% U' M
例如:
7 M1 ?) ~7 z. H/ s+ jC021:4C BFF0 JMP$F0BF                   4C BFF0   三个
5 C6 i+ T$ A  G7 J+ F8 T6 w( t# a) k: ]
+ S1 h% S! R& Z+ v# T9 H; e
连续的数据是:
# s& C2 B6 ]$ h8 o, u' d$ s5 S, `, P/ y7 _$ R
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
  m$ W3 |$ K0 k1 Z3 [9 s1 k+ @/ N  I! t7 j

0 V+ R0 \4 b2 _3 k7 E1 O; @这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?3 U) C5 \( L  _$ _" _( M* P
# P' }* ~" f8 v0 @
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 ' U' ~: \1 k# Z3 W% k: q# K! J4 {

5 e# f) R2 B8 R$ e9 D就直接跳转, 然后在跳转地址这把前面修改的命令补全6 G4 N$ r$ O& j+ y
8 P/ ~: p+ f$ m
跳转命令看这, 写的很清楚了
1 B" {' z; s9 mhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/: S) r- O" A: b; I7 Q6 R: j, F
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1773 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    5 Z& M; a, H4 Q& k
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF! Y& z5 h6 d+ g. \% M
  3. A5 15 LDA $15  ->EA       NOP
    : U! `7 p/ ]" Q/ y8 e* i1 W! m
  4. 85 17 STA $17
    ! K; _/ d* X0 q3 h# P
  5. A9 00 LDA #$00. v0 p4 F4 B' b2 u
  6. 9 \# t7 _1 ?- z# m. Y$ j
  7. F0BF:1 h1 J; b5 t6 F  l9 B* k
  8. 85 16 STA $16  Z8 l) W2 D1 \6 ^/ o  V
  9. A5 15 LDA $15, }( \; u' ]: H+ F1 D4 M
  10. .
    7 l3 b' ^* k8 e3 u4 B4 ?# k
  11. .
    0 H% l% O6 A5 G! z7 @
  12. .
    . E+ _" _4 n& [" d+ {: E
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
$ M2 X8 s) M6 R+ N7 t3 s
疾风之狼 发表于 2012-9-25 18:10

$ w. B' d$ s6 H& d+ G) C& ?! P3 E
% \, O: N7 V- a# B4 R# x) f6 m狼大,我按照你的方法,不知对不。9 r9 J# C, ^6 j0 I+ l& o1 k0 b) a

. r- b. X3 D0 Z; _. _& k# `
; e0 j- n9 h5 O5 ^2 j, t7 A' }1 @原数据) C2 K$ d0 B2 u2 V
C021:       85 16 A5 15 85 17
0 V( P' w4 Z3 I1 X1 R7 h$ u. n; _0 H8 X$ O
修改后
7 _& p. p! ]! X& ]- eC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF! i; }; k# A, g& A
5 {+ q( v! T+ Y6 t4 U
: D+ b& E, {) \1 r- |* b
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025! H0 {3 W: P/ U3 D

/ y2 U  x; M8 [0 Y+ R8 ]# E' S# R( L, b
3 C3 S8 H$ @5 s2 z- _2 @7 C( n7 C
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
" w4 M% D  p/ E6 L
3 P4 r* N2 X! W+ L/ e/ j6 J看了money的文章后,这次我把前面的几句指令也列举出来:5 E+ Q/ S+ ?* L- z8 O; f
C01F: A5 14 LDA $14               :A=0x12
- I( D. e- z9 z- ]0 y' VC021: 85 16 STA $16               :[0016]=A=0x127 V% k2 `* }* Z* b. b# N3 s
6 Q6 A) c$ C0 {  }% `' }. g* A4 ~
根据文章的内容我是不是应该从C01F这个地址开始修改呢。
7 F! z& u2 ]  ~! y! d# O5 h我现在重新动手测试一下,有问题再来请教你们0 s& A4 _/ O( }- p9 _  T

$ j5 G, N' ~4 c; V8 r. ~
4 X' l. Q' K2 q" ~8 ?  E  ~$ N经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 12:44 , Processed in 1.088867 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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