SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
アジェンダ
● 普通に遊ぶ
● データをいじる
● やったね
● ごにょごにょする
普通に遊ぶ
熟練度上げ
● たたかう
● キャンセル
– 熟練度算出ざっくり式(想像)
● 敵Lv-熟練度+たたかうを選択した回数
● 熟練度が上がると弱い敵を1発殴るだけではダメ
ステータス上げ
● ちから
– こうげき
● すばやさ
– かいひりつ
● HP/MP
– 味方を殴る
ブラッドソード最強
● 16回ヒットで9割くらいのHPを吸い取る
– ダメージ算出ざっくり式(想像)
● 残HP*(ヒット数/16)*0.9
● 18回ヒットすれば100%以上を吸い取る
– 剣熟練度+ヘイスト(or バッカスのさけ)
● 18を上回れば即死武器
● ラスボスも一撃
た5
● ステータスが99を超える
– とうぞくのこて
– ねじりはちまき
– きんのかみかざり
データをいじる
準備するモノ
● カセット
● レトロフリーク
● バイナリエディタが使えるパソコン
レトロフリークの仕様
● セーブデータが独自形式
– 変換ツールが公開されている
RPGは解析しやすいよね
● ほとんどの数値がパラメータとして確認で
きる
ユーザが入力できる値
● 名前
– 6文字入力できる
● 「ああああああ」ならセーブデータ上に6連続で出
現するはず
● 「あいうえおか」ならインクリメントされたデー
タが出現するはず
手順(1/2)
● フリオニールの名前を「ああああああ」
● マリアの名前を「いいいいいい」
● ガイの名前を「あいうえおか」
● レオンハルトの名前を「きくけこさし」
– 予想できる値を入れる
手順(2/2)
● レトロフリークにセーブ
● パソコンにデータを移してデータ変換
● バイナリエディタで目grep
● 予想したパターンを探す
アタリをつける
● 流石にしらみ潰しはツラいので…
– 6回繰り返して出現する「0xXX」と「0xXX+1」
があるはず
– 名前の前後に偶然同じ数値があるかも知れな
いが…
条件に合う部分を抜き出す
$ xxd -c 1 ff2.sav | awk '$0=$2' | uniq -c | awk
'{if($1==6)print}' | sort -u
6 10
6 18
6 1b
6 20
6 3f
6 7c
6 7e
6 7f
6 8a
6 8b
6 e0
6 f8
6 fd
6 ff
2パターン出現
あ=0x7e い=0x7f
あ=0x8a い=0x8b
発見
00001390: 00 8a 8a 8a 8a 8a 8a 1e 00 1e 00 05 00 05 00 0a ................
000013a0: 0a 0a 0a 0a 05 01 46 0a 00 7b 00 53 31 00 00 0a ......F..{.S1...
000013b0: 0a 0a 0a 0a 05 01 05 02 02 01 0e 01 16 00 7c 00 ..............|.
000013c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................
000013d0: 00 8b 8b 8b 8b 8b 8b 14 00 14 00 05 00 05 00 05 ................
000013e0: 0f 05 0f 0a 05 01 37 03 00 7a 00 68 30 00 00 05 ......7..z.h0...
000013f0: 0f 05 0f 0a 05 00 00 00 01 01 0a 01 14 00 48 00 ..............H.
00001400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ................
00001410: 00 8a 8b 8c 8d 8e 8f 28 00 28 00 05 00 05 00 0f .......(.(......
00001420: 05 0f 0a 0a 05 01 46 11 00 7b 00 61 30 00 00 0f ......F..{.a0...
00001430: 05 0f 0a 0a 05 00 00 00 02 01 01 01 19 00 36 00 ..............6.
00001440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 ................
00001450: 00 90 91 92 93 94 95 1e 00 1e 00 05 00 05 00 0a ................
00001460: 0a 0a 0a 0a 05 01 46 0a 00 7b 00 53 31 00 00 0a ......F..{.S1...
00001470: 0a 0a 0a 0a 05 01 05 02 02 01 0e 01 16 00 7c 00 ..............|.
00001480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00001490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000014a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
文字コード
● 「あ」が0x8aだとわかった
● 「い」が0x8bだとわかった
● 「う」は0x8cっぽい
書き換えてみる
● バイナリエディタで書き換え
● データを変換
● レトロフリークに戻す
● ロード
やったね!!
0x00-0xffまで書き出す
● 書き換えては変換してロード
– ひたすらやる
文字コード表
文字コード表からわかること
● 武器のマーク、ゴミ箱、罫線も文字
● アルファベットがない
– タイトルやエンディングで使ってる
– 0x00-0x3bの表示できない部分があやしい
– 表示モードがあって切り替えて使う?
他のステータスも見てみよう
並んでる
00001390: 00 e5 f1 ce df c2 f2 1e 00 1e 00 05 00 05 00 0a ................
000013a0: 0a 0a 0a 0a 05 01 46 0a 00 7b 00 53 31 00 00 0a ......F..{.S1...
000013b0: 0a 0a 0a 0a 05 01 05 02 02 01 0e 01 16 00 7c 00 ..............|.
000013c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................
000013d0: 00 e8 f1 ca ff ff ff 14 00 14 00 05 00 05 00 05 ................
000013e0: 0f 05 0f 0a 05 01 37 03 00 7a 00 68 30 00 00 05 ......7..z.h0...
000013f0: 0f 05 0f 0a 05 00 00 00 01 01 0a 01 14 00 48 00 ..............H.
00001400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ................
00001410: 00 50 cb ff ff ff ff 28 00 28 00 05 00 05 00 0f .P.....(.(......
00001420: 05 0f 0a 0a 05 01 46 11 00 7b 00 61 30 00 00 0f ......F..{.a0...
00001430: 05 0f 0a 0a 05 00 00 00 02 01 01 01 19 00 36 00 ..............6.
00001440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 ................
00001450: 00 f3 ce f6 e3 f2 dd 1e 00 1e 00 05 00 05 00 0a ................
00001460: 0a 0a 0a 0a 05 01 46 0a 00 7b 00 53 31 00 00 0a ......F..{.S1...
00001470: 0a 0a 0a 0a 05 01 05 02 02 01 0e 01 16 00 7c 00 ..............|.
並んでる
00001390: 00 e5 f1 ce df c2 f2 ff ff ff ff ff ff ff ff ff ................
000013a0: ff ff ff ff ff 01 46 0a 00 7b 00 53 31 00 00 ff ......F..{.S1...
000013b0: ff ff ff ff ff 01 05 02 02 01 0e 01 16 00 7c 00 ..............|.
000013c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................
アイテムも
00001390: 00 e5 f1 ce df c2 f2 1e 00 1e 00 05 00 05 00 0a ................
000013a0: 0a 0a 0a 0a 05 01 46 0a ff ff ff ff ff ff ff 0a ......F..{.S1...
000013b0: 0a 0a 0a 0a 05 01 05 02 02 01 0e 01 16 00 7c 00 ..............|.
000013c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................
ステータスについてはわかった。
他はどうなんだ?
レトロフリークの仕様
● 暗号化された状態でロムが保存される
– 保存したロムは別のレトロフリークでは動か
ない
ごにょごにょする
ロムの中にもデータはあるハズ
● hexと文字コードをそのまま置換してみる
読める!読めるぞ!
データからわかること
● 0x18+0xXXでアイテム名に置き換わる
● 0x01は改行
● 0x00は区切り
「ウボァー」もあるよ
00 や っ た ! パ ン デ モ ニ ウ ム に   は い
っ た ! ! 00 つ い に   こ こ ま で や っ て
き た な ! だ が   18 EC を た お す 01 こ と
は で き ん ! し ね ! 00 18 F0 「 こ の   18
EC が   や ら れ る と は … … 01 し ん じ ら
れ … … ん … … 2 ど ま で も … お ま え に
… … 01 … お ま え は   い っ た … い   な
… に も の … … 01 ウ ボ ァ − 00 さ あ   だ
っ し ゅ つ だ ! ! 00 18 EF 「 よ く   ぶ じ
に か え っ て き ま し た ね 01 18 EB 「 つ い
に や っ た な ! お め で と う ! ! 00 ポ −
ル 「 よ く   か え っ て き た な   ほ ん と
「わたし」の使い方
● 0x18EC = わたし
が   あ り ま す 。 00 ミ ン ウ 「 18 EC に は
  き み の う ん め い が   み え る 。 01 そ
れ は   18 EC の う ん め い と も   か か わ
っ て い る … … 01 ま ず   18 2F へ い き な
さ い 。 01 そ れ が う ん め い を き り ひ ら
く   み ち に な る は ず だ 。 00 ふ ふ っ  
そ う で す 。 00 そ れ が   18 04 な の で す
ね ? ! 01 そ れ を   ま ち の ぶ き や に い
る   ト ブ − ル に 01 18 EC て く だ さ い 。
  あ あ   こ れ で   て い こ く と 01 た い
と う に   た た か え る わ ! ! 00 【 16 01
ファイナル・ファンタジー2のデータを解析してみる

Contenu connexe

Tendances

[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
Introduction to Apache NiFi dws19 DWS - DC 2019
Introduction to Apache NiFi   dws19 DWS - DC 2019Introduction to Apache NiFi   dws19 DWS - DC 2019
Introduction to Apache NiFi dws19 DWS - DC 2019Timothy Spann
 
Real-time Data Streaming from Oracle to Apache Kafka
Real-time Data Streaming from Oracle to Apache Kafka Real-time Data Streaming from Oracle to Apache Kafka
Real-time Data Streaming from Oracle to Apache Kafka confluent
 
온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)
온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)
온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)Jo Hoon
 
Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterQualister
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Binary exploitation - AIS3
Binary exploitation - AIS3Binary exploitation - AIS3
Binary exploitation - AIS3Angel Boy
 
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화InfraEngineer
 
簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能John L Chen
 
2017 jenkins world
2017 jenkins world2017 jenkins world
2017 jenkins worldBrent Laster
 
Hadoop benchmark: Evaluating Cloudera, Hortonworks, and MapR
Hadoop benchmark: Evaluating Cloudera, Hortonworks, and MapRHadoop benchmark: Evaluating Cloudera, Hortonworks, and MapR
Hadoop benchmark: Evaluating Cloudera, Hortonworks, and MapRDouglas Bernardini
 
모바일 SNG 비동기 네트워크 통신 사례
모바일 SNG 비동기 네트워크 통신 사례모바일 SNG 비동기 네트워크 통신 사례
모바일 SNG 비동기 네트워크 통신 사례성수 이
 
NiFi Developer Guide
NiFi Developer GuideNiFi Developer Guide
NiFi Developer GuideDeon Huang
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기JangHyuk You
 
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOxInfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOxInfluxData
 
Memory access tracing [poug17]
Memory access tracing [poug17]Memory access tracing [poug17]
Memory access tracing [poug17]Mahmoud Hatem
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASAshnikbiz
 
Kubota l2900 dt tractor parts catalogue manual
Kubota l2900 dt tractor parts catalogue manualKubota l2900 dt tractor parts catalogue manual
Kubota l2900 dt tractor parts catalogue manualdfjjsjkemmm
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Taekyung Han
 

Tendances (20)

Data Science. Intro
Data Science. IntroData Science. Intro
Data Science. Intro
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
Introduction to Apache NiFi dws19 DWS - DC 2019
Introduction to Apache NiFi   dws19 DWS - DC 2019Introduction to Apache NiFi   dws19 DWS - DC 2019
Introduction to Apache NiFi dws19 DWS - DC 2019
 
Real-time Data Streaming from Oracle to Apache Kafka
Real-time Data Streaming from Oracle to Apache Kafka Real-time Data Streaming from Oracle to Apache Kafka
Real-time Data Streaming from Oracle to Apache Kafka
 
온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)
온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)
온프레미스 쿠버네티스에서도 로드밸런서를 (w MetalLB)
 
Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium Qualister
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Binary exploitation - AIS3
Binary exploitation - AIS3Binary exploitation - AIS3
Binary exploitation - AIS3
 
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
[MeetUp][1st] 오픈소스를 활용한 xflow 수집-시각화
 
簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能簡介 Linux 的 Network Namespace 功能
簡介 Linux 的 Network Namespace 功能
 
2017 jenkins world
2017 jenkins world2017 jenkins world
2017 jenkins world
 
Hadoop benchmark: Evaluating Cloudera, Hortonworks, and MapR
Hadoop benchmark: Evaluating Cloudera, Hortonworks, and MapRHadoop benchmark: Evaluating Cloudera, Hortonworks, and MapR
Hadoop benchmark: Evaluating Cloudera, Hortonworks, and MapR
 
모바일 SNG 비동기 네트워크 통신 사례
모바일 SNG 비동기 네트워크 통신 사례모바일 SNG 비동기 네트워크 통신 사례
모바일 SNG 비동기 네트워크 통신 사례
 
NiFi Developer Guide
NiFi Developer GuideNiFi Developer Guide
NiFi Developer Guide
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기
 
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOxInfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
 
Memory access tracing [poug17]
Memory access tracing [poug17]Memory access tracing [poug17]
Memory access tracing [poug17]
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPAS
 
Kubota l2900 dt tractor parts catalogue manual
Kubota l2900 dt tractor parts catalogue manualKubota l2900 dt tractor parts catalogue manual
Kubota l2900 dt tractor parts catalogue manual
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차
 

Plus de (^-^) togakushi

Plus de (^-^) togakushi (15)

ささみ麻雀部の紹介
ささみ麻雀部の紹介ささみ麻雀部の紹介
ささみ麻雀部の紹介
 
手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0
 
仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp
 
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramikoOpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
 
Janog33.5
Janog33.5Janog33.5
Janog33.5
 
現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方
 
sshdのお話
sshdのお話sshdのお話
sshdのお話
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
 
KVM+cgroup
KVM+cgroupKVM+cgroup
KVM+cgroup
 
SSH力をつかおう
SSH力をつかおうSSH力をつかおう
SSH力をつかおう
 
jenkinsで遊ぶ
jenkinsで遊ぶjenkinsで遊ぶ
jenkinsで遊ぶ
 
Pakena #9
Pakena #9Pakena #9
Pakena #9
 
SSH力をつけよう
SSH力をつけようSSH力をつけよう
SSH力をつけよう
 
Sfstudy #2
Sfstudy #2Sfstudy #2
Sfstudy #2
 
ひとりsphinx
ひとりsphinxひとりsphinx
ひとりsphinx
 

ファイナル・ファンタジー2のデータを解析してみる