EMU618社区

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

[原创HACK教程] PS1 HACK教学

[复制链接]

签到天数: 2100 天

[LV.Master]伴坛终老

发表于 3 天前 | 显示全部楼层 |阅读模式
1.准备工具
( W8 t6 t5 C# j带调试功能的模拟器:pSX 1.13* p- \' T/ M+ ]
一个16进制编辑器:很多,随意选一个自己喜欢的,本例教程使用的是winhex。& a9 W- U& c( n: ]( ^6 T
MIPS汇编指令集资料:MIPS汇编指令基础.pdf(MIPS Assembly Language)5 g, J3 z  \7 s! A
游戏ISO:月下夜想曲Rev 2版
* E, E/ R" Q. ]Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1).bin4 U1 h! j" B6 |, m. x
Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 2).bin
, Z) O: V/ l) b) A0 r& uAkumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2).cue
6 A- `, t9 g: ]9 z0 g. ~& Y. M% Q: T3 V
2.首先找到要修改的游戏金手指地址,我在emucheat提供的游戏金手指找到了。; K; z4 \4 @! A7 u4 E4 z
[金钱无限]
/ \% H4 r9 H( T9 l4 ?ON=80097C00#423F;80097C02#000F4 a9 `. `. ~/ q" F
$ d7 i9 Q! D: _4 I# _1 _3 ~2 j& Q& C
金钱地址是0x80097C005 C6 q4 Y5 E; j6 e. N) a& a
4 W% }, R4 A7 ~* o. T1 @; s: G
3.运行pSX 1.13,“文件”->“插入CD镜像”,加载“Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1).bin”镜像;
7 M9 ~; I2 v; X0 p5 U) q0 ^! d( u1 K. R" J$ J
(要设置pSX 1.13手柄键位请选择“文件”->“设置”->“控制器”)
* B- d1 u6 D' e4 I2 l3 A  N. k7 T% t
+ G$ y& J2 ]+ m. {4.游戏进行到藏书库的老爷爷处,进入“宝石壳却”界面,前提有一个宝石戒指;/ P0 w7 a+ a' N6 {
6 I9 k* t! o( ^* B; ^# |6 B! J
8 r( Q( f" v7 I1 K  L
8 r3 W& l# v2 [/ z
5.选择“调试”->“监视器”->“r3000”,在“中断点”窗口点击右键,选择“添加 Ins”添加断点;
0 ?4 a4 y3 w7 D( i
4 q5 A3 j! l" @$ P* D7 f5 ?$ e5 M& v" N% d8 r- k( J2 F- A+ w
8 g) o" @# f0 M- R6 k
6.在“中断点”窗口的选择“内存”,去掉“读”打勾,只保留“写”打勾,“地址”填0x80097C00,“大小”是字节长度,填0x4,“条件”和“数量”留空暂时不管,再点击“确定”,断点添加完成;
* Y7 u, _  x( d/ L# v8 D, ~; o
8 a" `7 u+ A) j- {0 b6 C0 h3 e/ |- y$ b; n8 J6 Y7 M1 H, o/ x
& D8 O, Y# u! I, z' |
7.回到游戏中,把宝石戒指卖掉后,程序发生中断,程序停在1bb31f0:slt r2,r5,r2一行;
+ m% R9 b  M5 G8 v9 _# j
0 D' a3 e! w! G/ b4 p8 }
; I: }  d. G. f4 j" a0 s
( \' f6 X+ v) h# b8.点击“文件”->“反汇编”,“地址”填0x1b31d0,“大小”填0x100,点击“确定”,另存为一个扩展名为txt的文件;
* t! @* @) k% G/ n# U% Z" v' s. Z# c9 u9 r# w) z
) l& c8 c1 y% g( D: x* a; T

% L0 t2 F4 }8 v4 z) k9 M9.用记事本之类文本编辑工具打开刚刚另存为的txt文件,接下来开始分析汇编代码;
" O4 c+ J( Q$ G) }# Q0 f+ l: I. q0 ^; F6 E# O
001b31d0: 3c05000f lui r5,0x000f                        ->把0x000f载入r5寄存器高位,r5=0x000f0000- ?! c+ z# |( c7 L# @% f8 N
001b31d4: 34a5423f ori r5,r5,0x423f                ->把r5寄存器的值和立即数0x423f进行逻辑“或”运算,结果存入r5寄存器,r5=0x000f423f+ I& l$ w1 s) a9 x- x' Q& p" m7 U
001b31d8: 3c048009 lui r4,0x8009                        ->把0x8009载入r4寄存器高位,r4=0x80090000
( m6 ^" |+ j6 n; e001b31dc: 24847c00 addiu r4,r4,0x7c00                ->把r4寄存器数据和立即数0x7c00相加,结果存入r4寄存器,r4=0x80097c007 i3 n& H% [! Y
001b31e0: 8c830000 lw r3,0x0000(r4)                ->以0x0000为偏移量,把r4寄存器数据和0x0000相加得到地址的数据载入到r3寄存器% u" D. V/ x: M; \! q
001b31e4: 00001012 mflo r2                                ->把lo寄存器的值传递到r2寄存器
; t+ Y$ q( @5 q& l, s001b31e8: 00431021 addu r2,r2,r3                        ->把r2寄存器的值和r3寄存器的值相加,结果存入r2寄存器
: ]& N' G  U+ q0 D, G001b31ec: ac820000 sw r2,0x0000(r4)                ->以0x0000为偏移量,把r2寄存器的值写入到r4寄存器数据和0x0000相加得到地址0 s2 e) w3 S* v& d3 F( B  j8 I
001b31f0: 00a2102a slt r2,r5,r2                        ->把r5寄存器的值和r2寄存器的值比较,当r5寄存器的值小于r2寄存器的值时,r2寄存器的值设置为0,否则设置为1( z( e8 x% X/ u" v7 r+ ~
001b31f4: 10400002 beq r2,r0,0x001b3200        ->当r2寄存器的值和r0寄存器的值相等时跳转到0x001b3200地址继续执行,否则继续
9 A8 r' k  e* A4 c7 ?001b31f8: 00000000 nop                                ->空指令" X$ M  F" j1 h4 y$ Z7 G
001b31fc: ac850000 sw r5,0x0000(r4)                ->以0x0000为偏移量,把r5寄存器的值写入到r4寄存器数据和0x0000相加得到地址6 l3 h& A: Y2 j: s

' A9 w6 |& C/ ^- J) C10.根据分析,接下来只要把001b31f4地址的10400002 beq r2,r0,0x001b3200指令nop掉,就可以得到金钱最大,nop指令机械码是00000000。
+ C% q" D& N% x) J& A1 |4 N# c, ?9 b  ?# n2 S: j
11.用16进制编辑器打开Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1).bin! B6 b8 M2 f2 u* n, s9 J

. M5 @9 G" g& z3 v) n, E9 f( S12.查找16进制数值,先查找0f00053c3f42a5340980043c,再查找0200401000000000000085ac
0 ?* u6 }5 W) R9 s% O
4 L, x; L  [: x( R- q13.在0f00053c3f42a5340980043c下面的0200401000000000000085ac就是我要找的汇编指令机械码;
- z  r0 G$ u9 D! Q* ]4 z, c6 w7 T- Z: C# ^6 ?
14.把02004010修改为00000000,另存为Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1)HACK.bin文件' i+ v" S: E- ]) r5 X
8 d) {* L+ Q7 F6 [- G

$ H) {% Y; U( I1 W
7 g+ }4 N$ D! S4 S15.用模拟器加载Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (Rev 2) (Track 1)HACK.bin,测试结果:卖宝石戒指得到金钱999999,修改成功。
1 n: m, ~, A7 e1 t( r) b! `9 w- z9 _6 V- ~" K; [4 w
( j. {: Z" g9 f- u/ Q
3 @$ O! ?$ h: I
16.要刻盘用实体机玩请先把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,再刻盘用实体机玩吧。
  o' E+ Z' R+ u& Y# u$ N  q# p) _( z; F% z# h' b' _' y7 t7 j
疾风之狼% o6 `" `9 S/ [: x7 `
2025.10.11

6 X' b% M) A/ H7 ~7 S- V$ m3 ]

本帖子中包含更多资源

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

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:49 , Processed in 1.061523 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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