SlideShare a Scribd company logo
1 of 28
Download to read offline
リバースエンジニアリング入門 ~楽しいバイナリ解析~ 
長崎県立大学 
国際情報学部 情報メディア学科 
片渕 小夜 
2014/09/06 
1
だれおま 
名前:片渕 小夜(かたふち さや) 
年齢:21歳 
所属:長崎県立大学国際情報学部情報メ ディア学科4年 
進路:来年4月から本学の大学院へ 
趣味:プログラミング,TVゲーム 
Twitter:@reiji1020 
2014/09/06 
2
ちなみに 
2014/09/06 
3
2014/09/06 
4 
(第2回長崎デジタルコンテストHPより)
昨年IPADもらいました 
2014/09/06 
5
開発機として元気に活躍してます 
2014/09/06 
6
本題 
2014/09/06 
7
Q.TV(PC)ゲームしますか? 
2014/09/06 
8
チート(改造)して遊んだことはありますか? 
2014/09/06 
9 
モンスターハンター4(2013,カプコン)より
自分はあります 
2014/09/06 
10
リバースエンジニアリング 
•ソフトウェアの動作を解析して,ソース コードやプログラムの構造を分析するこ と 
•サードパーティ企業が他社製品の互換製 品を作る際によく用いられる 
•リバースエンジニアリングの腕を競う 「CTF(Capture The Flag)」というもの がある 
2014/09/06 
11
REできると得すること 
•ゲームでチートされることを防ぐ 
–無限ライフ,無限ボム,常に攻撃力MAXなど 
–ソフトウェアの脆弱性を見つけ,更に安全性 を高めることが出来る 
•インターネット上に存在するマルウェア を解析してデータを提供することができ る 
•コンピュータでソフトウェアが動く仕組 みをより深く理解できる 
2014/09/06 
12
REでやっちゃいけないこと 
利用にライセンスキーが必要なソフトウェ ア(Microsoft Officeなど)をアクティベート 無しで利用できるように改造することなど 
2014/09/06 
13 
絶対にやらないでね!
REを始める際に必要なもの 
•アセンブラ(機械語)に関する最低限の知識 
•Windows7or8の入ったPC 
•やる気(←超重要) 
2014/09/06 
14
??? 
2014/09/06 
15 
オレたちハッカーは普通のウィ ンドウズみたいなGUIでPCを 扱うことはほとんど無い 
初歩的なスクリプト言語から 
FortranだのCOBOLだのの高 度なプログラミング言語まで駆 使して端末を動かしたりネット ワークに侵入してコントロール したり… 
(ブラッディ・マンデイ 6巻 高 木藤丸)
??? 
2014/09/06 
16 
オレたちハッカーは普通のウィ ンドウズみたいなGUIでPCを 扱うことはほとんど無い 
初歩的なスクリプト言語から 
FortranだのCOBOLだのの高 度なプログラミング言語まで駆 使して端末を動かしたりネット ワークに侵入してコントロール したり… 
(ブラッディ・マンデイ 6巻 高 木藤丸)
例えばこのようなソフトウェア 
2014/09/06 
17 
Crackme.exe
2014/09/06 
18 
Windows7では 
1980年以降の日付し か 
設定できない 
このプログラムを 
解析するしかない!
どういうプログラムだろう? 
『1192年05月15日にしか起動できない』 
→本日が何年何月何日か確認するプログラ ムがある 
2014/09/06 
19 
今日は1192年 05年15日か? 
次のプログラムを起動 
メッセージボックスを出して終了 
Yes 
No
Ollydbg 
•デバッガのひとつ 
•フリーで使えるプログラム解析の強い味方 
•基本英語だが有志による日本語化パッチも配布 されている 
2014/09/06 
20
2014/09/06 
21 
GetSystemTime API 
恐らく時間を取得する? 
DialogBoxParam API 
日時が違うというメッセージを出す? 
このへんで日時判定?
2014/09/06 
22 
JNZ命令:指定のアドレスにジャンプ(00402960へ) 
CMP命令:レジスタの中の数値と指定の数値を比較 
※00402960にはエラーメッセージを表示する処理が書かれています 
エラーメッセージを表示する命令にジャンプするようになっているので… 
このJNZ命令を何もしない命令「NOP命令」に 
書き換えることで条件をクリアする!
2014/09/06 
23 
JMZ命令(バイナリで75 27と表現)を 
NOP命令(バイナリで75 0Cと表現)へ
強制終了は免れることが出来る 
2014/09/06 
24 
この先もまだまだ続く けど今日はこれまで
どうでしょうか? 
2014/09/06 
25
少し難しかったでしょうか? 
2014/09/06 
26
とりあえず言いたいこと 
•何気なく使用していたソフトウェアの中身を 覗くことで,似たようなプログラムを作る時 に応用することが出来る 
•コンピュータやソフトウェアの最小単位は “バイナリ”である 
•アセンブラの勉強は今からでもでき,リバー スエンジニアリングの勉強も今からできる 
2014/09/06 
27
参考書籍&おすすめ書籍 
•『たのしいバイナリの歩き方』(技術評論社) 
•『リバースエンジニアリング Pythonによる バイナリ解析手法』(オライリー・ジャパン) 
•『アナライジング・マルウェア フリーツー ルを使った感染事案対処』(オライリー・ ジャパン) 
•『アセンブリ言語の教科書』(データハウス) 
2014/09/06 
28

More Related Content

More from Saya Katafuchi

VJ Cardboard ブイジェーカードボード
VJ Cardboard ブイジェーカードボードVJ Cardboard ブイジェーカードボード
VJ Cardboard ブイジェーカードボードSaya Katafuchi
 
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Saya Katafuchi
 
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!Saya Katafuchi
 
輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」
輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」
輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」Saya Katafuchi
 
輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...
輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...
輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...Saya Katafuchi
 
第一回カオス時系列解析
第一回カオス時系列解析第一回カオス時系列解析
第一回カオス時系列解析Saya Katafuchi
 
卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのこと卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのことSaya Katafuchi
 
画像認識のための深層学習
画像認識のための深層学習画像認識のための深層学習
画像認識のための深層学習Saya Katafuchi
 
ディープボルツマンマシン入門
ディープボルツマンマシン入門ディープボルツマンマシン入門
ディープボルツマンマシン入門Saya Katafuchi
 
20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座Saya Katafuchi
 
20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座Saya Katafuchi
 
201310合同ゼミ論文紹介
201310合同ゼミ論文紹介201310合同ゼミ論文紹介
201310合同ゼミ論文紹介Saya Katafuchi
 
VirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやったVirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやったSaya Katafuchi
 
ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜Saya Katafuchi
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜Saya Katafuchi
 
Reverseengineering koukai
Reverseengineering koukaiReverseengineering koukai
Reverseengineering koukaiSaya Katafuchi
 
i phoneでbasicやるよ!
i phoneでbasicやるよ!i phoneでbasicやるよ!
i phoneでbasicやるよ!Saya Katafuchi
 

More from Saya Katafuchi (20)

20190324vvvvオフ会
20190324vvvvオフ会20190324vvvvオフ会
20190324vvvvオフ会
 
VJ Cardboard ブイジェーカードボード
VJ Cardboard ブイジェーカードボードVJ Cardboard ブイジェーカードボード
VJ Cardboard ブイジェーカードボード
 
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
 
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
 
輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」
輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」
輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」
 
輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...
輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...
輪講用資料「Mitosis Detection in Breast Cancer Histology Images with Deep Neural Ne...
 
第一回カオス時系列解析
第一回カオス時系列解析第一回カオス時系列解析
第一回カオス時系列解析
 
卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのこと卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのこと
 
画像認識のための深層学習
画像認識のための深層学習画像認識のための深層学習
画像認識のための深層学習
 
ディープボルツマンマシン入門
ディープボルツマンマシン入門ディープボルツマンマシン入門
ディープボルツマンマシン入門
 
20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座
 
20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座
 
201310合同ゼミ論文紹介
201310合同ゼミ論文紹介201310合同ゼミ論文紹介
201310合同ゼミ論文紹介
 
VirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやったVirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやった
 
ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜
 
Capture the flag!
Capture the flag!Capture the flag!
Capture the flag!
 
Tesseract-OCR in iOS
Tesseract-OCR in iOSTesseract-OCR in iOS
Tesseract-OCR in iOS
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
 
Reverseengineering koukai
Reverseengineering koukaiReverseengineering koukai
Reverseengineering koukai
 
i phoneでbasicやるよ!
i phoneでbasicやるよ!i phoneでbasicやるよ!
i phoneでbasicやるよ!
 

Recently uploaded

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』