EMU618社区

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

[原创HACK教程] PS1 HACK教学

[复制链接]

签到天数: 2100 天

[LV.Master]伴坛终老

发表于 3 天前 | 显示全部楼层 |阅读模式
1.准备工具
+ e' h( C3 @- L0 |带调试功能的模拟器:pSX 1.13
) u$ [7 d2 e0 ?3 M7 J. a一个16进制编辑器:很多,随意选一个自己喜欢的,本例教程使用的是winhex。: l4 h3 \8 R6 E) T) d; X
MIPS汇编指令集资料:MIPS汇编指令基础.pdf(MIPS Assembly Language)
" ?+ v+ ]: d; c4 j/ ], K游戏ISO:月下夜想曲Rev 2版
4 r' j% c4 v* t# ^* Q$ M9 t9 |Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1).bin
  S- l$ U3 t! UAkumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 2).bin& R/ {  k8 X, M. n5 o) }  _
Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2).cue0 s# f) W8 T" ]. n. q+ q* u6 C
( y2 t! n( ~3 d
2.首先找到要修改的游戏金手指地址,我在emucheat提供的游戏金手指找到了。
# V" r1 q8 ]$ B. \[金钱无限]" N" U1 A" e; i0 ]
ON=80097C00#423F;80097C02#000F
' [) d  L5 `* N% W* |  t5 C6 M! o
  s* s6 n5 e* j. g& _9 ^0 `金钱地址是0x80097C00
  E/ L) P0 u: A9 m6 `. K' f$ _/ p0 ^3 `
3.运行pSX 1.13,“文件”->“插入CD镜像”,加载“Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1).bin”镜像;
" {+ [: ?/ s- J7 L+ P& R3 k% Q; {  g- N
(要设置pSX 1.13手柄键位请选择“文件”->“设置”->“控制器”)7 L' g) B( E% m/ ]- h

* J% q9 w' \. m( u* e1 z4.游戏进行到藏书库的老爷爷处,进入“宝石壳却”界面,前提有一个宝石戒指;
* i7 M1 Q' Q1 |: E3 M; n
- {" _+ R3 H" j# {8 ~3 H
3 W7 l/ Q  D0 B% W5 ]( }7 N. a$ c- e9 a
4 P8 k' D5 x- j# E5.选择“调试”->“监视器”->“r3000”,在“中断点”窗口点击右键,选择“添加 Ins”添加断点;. G4 {( M: T( V" Y1 C. _% \8 G
5 p. F" [. B1 P5 |
" a! L3 f3 D8 K  F

' C; I' P8 F: T6 M6.在“中断点”窗口的选择“内存”,去掉“读”打勾,只保留“写”打勾,“地址”填0x80097C00,“大小”是字节长度,填0x4,“条件”和“数量”留空暂时不管,再点击“确定”,断点添加完成;* o) |* ?" }4 M. a
" C9 }. D( e$ j- h9 C- G7 A

2 e8 _. F+ A" U6 x) Q* b% f4 o" S! f2 g6 B5 C% P' y
7.回到游戏中,把宝石戒指卖掉后,程序发生中断,程序停在1bb31f0:slt r2,r5,r2一行;( m$ h2 z7 ]2 ]' H; T1 U

( ]( E. ~  Y# B: I% z0 Q+ s/ b, B$ N

2 r' O. r1 ?0 n# [; Q  k2 [7 }8.点击“文件”->“反汇编”,“地址”填0x1b31d0,“大小”填0x100,点击“确定”,另存为一个扩展名为txt的文件;
# u( |7 N/ h# Z0 O, _9 W8 F
4 h% ?7 O) a4 c, q4 K+ x
% m7 t# I6 b% W, h7 j2 |+ M, a& t3 m
9.用记事本之类文本编辑工具打开刚刚另存为的txt文件,接下来开始分析汇编代码;
5 z" L( ^6 u# L+ A/ {4 t* [' x2 \+ L8 U  P9 p
001b31d0: 3c05000f lui r5,0x000f                        ->把0x000f载入r5寄存器高位,r5=0x000f0000  l3 t9 E8 F" D8 ^2 o" z% A9 X! U
001b31d4: 34a5423f ori r5,r5,0x423f                ->把r5寄存器的值和立即数0x423f进行逻辑“或”运算,结果存入r5寄存器,r5=0x000f423f
2 F9 t( t  |+ b2 j& d7 R) W. l  a001b31d8: 3c048009 lui r4,0x8009                        ->把0x8009载入r4寄存器高位,r4=0x80090000
, o8 p6 C1 a. i* \: q; b4 N$ l001b31dc: 24847c00 addiu r4,r4,0x7c00                ->把r4寄存器数据和立即数0x7c00相加,结果存入r4寄存器,r4=0x80097c003 \" B# x7 v9 }
001b31e0: 8c830000 lw r3,0x0000(r4)                ->以0x0000为偏移量,把r4寄存器数据和0x0000相加得到地址的数据载入到r3寄存器, P% K7 K' P" y9 R6 I
001b31e4: 00001012 mflo r2                                ->把lo寄存器的值传递到r2寄存器
+ ]0 _9 n) E0 M# a0 D001b31e8: 00431021 addu r2,r2,r3                        ->把r2寄存器的值和r3寄存器的值相加,结果存入r2寄存器
9 [5 H) o, i' H/ U& v001b31ec: ac820000 sw r2,0x0000(r4)                ->以0x0000为偏移量,把r2寄存器的值写入到r4寄存器数据和0x0000相加得到地址0 |% Z1 G  c8 m+ ^0 e2 R
001b31f0: 00a2102a slt r2,r5,r2                        ->把r5寄存器的值和r2寄存器的值比较,当r5寄存器的值小于r2寄存器的值时,r2寄存器的值设置为0,否则设置为1
  {* I+ p, B/ }% \1 E3 J001b31f4: 10400002 beq r2,r0,0x001b3200        ->当r2寄存器的值和r0寄存器的值相等时跳转到0x001b3200地址继续执行,否则继续
$ x2 x# ^) ?' w/ r9 r001b31f8: 00000000 nop                                ->空指令
0 x8 L" T" }% N' w; J0 f! |001b31fc: ac850000 sw r5,0x0000(r4)                ->以0x0000为偏移量,把r5寄存器的值写入到r4寄存器数据和0x0000相加得到地址
; p) Q1 W4 T2 n( M. O( B/ K* E1 T9 T7 b$ r. M8 Q8 d  Q
10.根据分析,接下来只要把001b31f4地址的10400002 beq r2,r0,0x001b3200指令nop掉,就可以得到金钱最大,nop指令机械码是00000000。0 ~+ x; E5 j5 ]) f5 x; [2 n

# D" L) W( H1 t) [* g" u5 A% x  U11.用16进制编辑器打开Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1).bin
% Q* z/ j" r; \+ h' q' L0 r$ R# {3 c; E' `7 |' ~8 p5 d" y, c
12.查找16进制数值,先查找0f00053c3f42a5340980043c,再查找0200401000000000000085ac
5 E8 I- l: O8 f+ Z6 \, Z3 X6 U7 Y% V2 Y2 ?: j3 Y# ^' B1 t0 ^- D0 n; O
13.在0f00053c3f42a5340980043c下面的0200401000000000000085ac就是我要找的汇编指令机械码;& I$ d' X+ l. |, r5 u- H# j& ?: a

& Z. H: s) }* v2 L# Q; o. F14.把02004010修改为00000000,另存为Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1)HACK.bin文件
" k7 f* ?7 [0 \9 `# `: d- {1 P+ C4 J/ C! S

0 C! i8 N( r1 z" f' I
% I7 y+ b8 v. G' q6 R15.用模拟器加载Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1)HACK.bin,测试结果:卖宝石戒指得到金钱999999,修改成功。
/ O2 r- V0 s2 G; [) X4 {! s
5 h- A9 s% \$ Q" f6 m, A% d+ d5 b2 A/ `0 l

7 \: V' y8 T( D+ s* F# a& u. o16.要刻盘用实体机玩请先把Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1)HACK.bin和Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 2).bin两轨数据合并成一个镜像,然后用ECCREGEN 1.4之类修复EDC和ECC,再刻盘用实体机玩吧。
- J  x7 B. T9 p$ \; e! L+ f) P0 X9 {0 `& a
疾风之狼
" e$ P% I8 N4 ?6 j) [2025.10.11

  {4 @% }+ Y) m6 n% y4 L4 x. v" J

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

签到天数: 23 天

[LV.4]偶尔看看III

发表于 3 天前 | 显示全部楼层
狼大真高手。我目前只尝试过FC SFC MD的hack,其余机种的还一次没碰过
回复 支持 反对

使用道具 举报

签到天数: 10 天

[LV.3]偶尔看看II

发表于 3 天前 | 显示全部楼层
有时间试试   
回复 支持 反对

使用道具 举报

签到天数: 1163 天

[LV.10]以坛为家III

发表于 前天 10:23 | 显示全部楼层
大佬 谢谢   没事了研究研究
回复 支持 反对

使用道具 举报

签到天数: 1637 天

[LV.Master]伴坛终老

发表于 前天 17:17 | 显示全部楼层
感谢分享
[发帖际遇]: 一个袋子砸在了 yes007007 头上,yes007007 赚了 1 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-14 14:39 , Processed in 1.062500 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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