Submit Search
Upload
Dll Injection
•
Download as PPTX, PDF
•
2 likes
•
3,934 views
H
Hiroaki Hata
Follow
NTT Tech conference #2, tutorial DLL Injection
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 20
Download now
Recommended
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
PostreSQL監査
PostreSQL監査
NTT DATA OSS Professional Services
Recommended
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
PostreSQL監査
PostreSQL監査
NTT DATA OSS Professional Services
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
やってはいけない空振りDelete
やってはいけない空振りDelete
Yu Yamada
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリング
junk_coken
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Format string Attack
Format string Attack
icchy
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
Google Cloud で実践する SRE
Google Cloud で実践する SRE
Google Cloud Platform - Japan
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Hiraku Toyooka
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
leverages_event
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
Asuka Nakajima
More Related Content
What's hot
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
やってはいけない空振りDelete
やってはいけない空振りDelete
Yu Yamada
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリング
junk_coken
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Format string Attack
Format string Attack
icchy
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
Google Cloud で実践する SRE
Google Cloud で実践する SRE
Google Cloud Platform - Japan
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Hiraku Toyooka
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
What's hot
(20)
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
分散システムについて語らせてくれ
分散システムについて語らせてくれ
やってはいけない空振りDelete
やってはいけない空振りDelete
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
PostgreSQLアンチパターン
PostgreSQLアンチパターン
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリング
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Format string Attack
Format string Attack
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
Google Cloud で実践する SRE
Google Cloud で実践する SRE
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Similar to Dll Injection
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
leverages_event
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
Asuka Nakajima
JUIZ DLK: 組込み向け Deep Learning コンパイラ
JUIZ DLK: 組込み向け Deep Learning コンパイラ
Takeo Imai
DelphiでWin/Macクロスコンパイル
DelphiでWin/Macクロスコンパイル
Tomonori Ohba
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
Naoki Shibata
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
ネクストスケープ
2011年10月21日
2011年10月21日
nukaemon
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
Fujio Kojima
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
Ryohei Kamiya
SOFTCAMP SHIELDEX SaniTrans Mail
SOFTCAMP SHIELDEX SaniTrans Mail
Softcamp Co., Ltd.
JUIZ DLK 組込み向けDeep Learningコンパイラ
JUIZ DLK 組込み向けDeep Learningコンパイラ
LeapMind Inc
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
第23回「NTT DataとIBMが熱く語ります!!OpenFlow/SDNコントローラー開発秘話から 未来まで、裏話もあるよ」(2012/12/20 o...
第23回「NTT DataとIBMが熱く語ります!!OpenFlow/SDNコントローラー開発秘話から 未来まで、裏話もあるよ」(2012/12/20 o...
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
OSC Hiroshima 2013
OSC Hiroshima 2013
Yuya Adachi
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
HPCシステムズ株式会社
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1
Atomu Hidaka
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
Mr. Vengineer
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
Fuminobu TAKEYAMA
20130329 rtm3
20130329 rtm3
openrtm
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
Similar to Dll Injection
(20)
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
JUIZ DLK: 組込み向け Deep Learning コンパイラ
JUIZ DLK: 組込み向け Deep Learning コンパイラ
DelphiでWin/Macクロスコンパイル
DelphiでWin/Macクロスコンパイル
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
2011年10月21日
2011年10月21日
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
SOFTCAMP SHIELDEX SaniTrans Mail
SOFTCAMP SHIELDEX SaniTrans Mail
JUIZ DLK 組込み向けDeep Learningコンパイラ
JUIZ DLK 組込み向けDeep Learningコンパイラ
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
第23回「NTT DataとIBMが熱く語ります!!OpenFlow/SDNコントローラー開発秘話から 未来まで、裏話もあるよ」(2012/12/20 o...
第23回「NTT DataとIBMが熱く語ります!!OpenFlow/SDNコントローラー開発秘話から 未来まで、裏話もあるよ」(2012/12/20 o...
OSC Hiroshima 2013
OSC Hiroshima 2013
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
20130329 rtm3
20130329 rtm3
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Dll Injection
1.
ntt.com Transform your business,
transcend expectations with our technologically advanced solutions. Copyright © NTT Communications Corporation. All rights reserved. DLLインジェクション NTTコムエンジニアリング 波多浩昭
2.
Copyright © NTT
Communications Corporation. All rights reserved. 自己紹介 名前:波多浩昭 所属:NTTコムエンジニアリング ソフトウェアツール開発センタ 入社直後の専門:組み込み系(NTTグループには生存していないと思われている種) NTTの電話局に設置される交換機という装置の内部で動作するソフトウェアの開発 モトローラ68Kプロセッサのアセンブリ言語による開発 リアルタイムOS(TRON)上でのアプリケーション開発 その後の出向:NTTPCコミュニケーション InfoSphereというISPで,ネットワーク管理系ソフトウェア開発 企業向け通信サービスで利用されるソフトウェア開発 現在NTTコミュニケーショングループでは 企業向け通信サービスで利用されるソフトウェア開発を担当 2/19
3.
Copyright © NTT
Communications Corporation. All rights reserved. DLLインジェクションとは? EXE 実行中プロセス EXE 攻撃プロセス DLL 偽DLL セキュリティ攻撃の文脈では 実行中のプロセスに悪意を持つ任意のプログラ ムを実行させる攻撃 BOFは攻撃対象プログラムの入力に,任意のプ ログラムを与えることで注入に成功する DLLインジェクションは,悪意を持つDLLを強 制的に読み込ませて,実行させる 偽DLL 1.注入 2.呼び出し先 改ざん 3/19
4.
Copyright © NTT
Communications Corporation. All rights reserved. VisualStudio Community 2017 の C++デスクトップ開発環境のインストール https://www.visualstudio.com/ja/vs/whatsnew/ からインストーラをダンロードして起動 開発環境の準備 インストーラ画面からC++ によるデスクトップ開発 をインストールする x64 Native Tool Command Promptを起動する 実行ファイルのビルド >cl A.c DLLファイルのビルド >cl B.c /LD clコマンドを投入してコンパ イラバージョンが表示され ることを確認する 64ビット版開発環境である ことを確認する インストール後 4/19https://github.com/h-hata/dllinjection 実験用ソースコードは上記よりダウンロード可能です
5.
Copyright © NTT
Communications Corporation. All rights reserved. プロセスと仮想メモリ プロセスA メモリ空間 プロセスB メモリ空間 カーネル空間 ユーザ空間 同じアドレスでもプロセス により内容は異なる 他プロセスのメモリ空間に はアクセスできない カーネル空間はすべてのあ プロセスで共有されている 5/19
6.
Copyright © NTT
Communications Corporation. All rights reserved. VirtualAllocExとWriteProcessMemory プロセスA メモリ空間 プロセスB メモリ空間 VirtualAllocEx 他プロセスのメモリ空間に,利用可能なメモリ領域を確保する WriteProcessMemory VirtualAllocExで確保されたメモリ領域に,自プロセスのメモリ内容をコピーする 6/19 通常のプロセス間通信や共 有メモリと異なり,書き込 まれたプロセスは書き込ま れた場所や書き込まれたタ イムングを検知できない VirtualAllocExと WriteProcessMemoryを使えば他 プロセスのメモリ空間にデータの 書き込みが可能.
7.
Copyright © NTT
Communications Corporation. All rights reserved. VirtualAllocExとWriteProcessMemory実験 ① ② ③ ④⑤ ⑥ 事前準備 プロセスを2つ起動するために,2つの コマンドプロンプトを起動します. testmemディレクトリのta.cとmw.cをビル ドします. $cl ta.c $cl mw.c mw.exeはta.exeのメモリを確保してデー タを書き込みます. 実験 ①ta.exeを起動します.pidが表示されることを確認します ②他画面からmw.exeでta.exeプロセスのメモリを確保して”ABCDEFG“という文字列を書き込みます ③ta.exeでは該当アドレスにデータが書き込まれていることを確認できます ④まだ未使用のエリアのメモリダンプを試みると例外が発生します(経験上次は1D0000が確保され る予感) ⑤mw.exeで,もう一度別のメモリエリアを確保して”12345678”という文字列を書き込みます.予想 通り1D0000からメモリ確保されました ⑥ta.exeで1D0000をダンプすると,今度は書き込まれたデータが確認できます 7/19
8.
Copyright © NTT
Communications Corporation. All rights reserved. プロセスとスレッド プロセスA メモリ空間 プロセスB メモリ空間 最初プロセスには1スレッ ドが存在する. CreateThread APIでサブス レッドを生成できる プロセス内スレッドは,同 じメモリ空間を共有する 8/19
9.
Copyright © NTT
Communications Corporation. All rights reserved. CreateRemoteThread プロセスA メモリ空間 プロセスB メモリ空間 他プロセスに強制的にス レッドを生成する. 9/19 CreateRemoteThread
10.
Copyright © NTT
Communications Corporation. All rights reserved. CreateRemoteThreadの実験 ①② ③ 事前準備 プロセスを2つ起動するために,2つのコマンドプロンプトを起動します. testmemディレクトリのta.cとcr.cをビルドします. $cl mw.c cr.exeはta.exeの関数DispMessageを強制的に起動します. 実験 ①taを起動します.DispMessage関数の開始アドレスが13FB41000であることが確認されます ②crを起動します.taのプロセスIDとDispMessage関数の開始アドレスを起動パラメータにします ③ta側でDispMessageが起動され,”log:”という文字列がいきなり表示されてしまいます. 9-2/19
11.
Copyright © NTT
Communications Corporation. All rights reserved. kernel32.libのロード位置 プロセスA メモリ空間 プロセスB メモリ空間 kernel32.dll kernel32.dllロード位置 function() function() 同じアドレス 同じアドレス開始位置 kernel32.dllはすべてのノーマルプロセスで同一のアドレスにロードされる kernel32.dll内の関数はすべてのプロセスで同一開始アドレスである kernel32.dll内の関数はRemoteCreateThreadを使って他プロセスで起動できる 10/19
12.
Copyright © NTT
Communications Corporation. All rights reserved. DLLの作り方と使い方 sub.c (例) main.cとsub.cから構成されmain.exeがsub.dllを利用するアプリケー ションをビルドする sub.dll sub.lib main.c #include <windows.h> __declspec(dllexport) int sub(int a,int b) {return a-b;} WINAPI DllMain(HINSTANCE h,DWORD reasin,PVOID imp) {return TRUE;} #include <windows.h> #include <stdio.h> int main(int arc,char **argv) {printf("sub=%d¥n",sub(5,3));} >main sub=2 + sub.lib+ main.exe >cl /LD sub.c >cl main.c sub.lib sub.c main.c 実行結果ビルド時にlibファイルが必要 実行時にはlibファイルは不要dllのみ必要 DllMainはロードされた時に実行される(通常何もしない) 11/19
13.
Copyright © NTT
Communications Corporation. All rights reserved. 実行可能ファイルがDLLを呼び出す仕組み #include <windows.h> #include <stdio.h> typedef int(*T)(int,int); int main(int arc,char **argv){ T f; HMODULE hm; hm=LoadLibrary(”add.dll"); if(hm==NULL){ printf("Load Error¥n"); return 1; } f=(T)GetProcAddress(hm,”myadd"); printf(”add=%d¥n",f(5,3)); } libファイルがなくてもDLLの持つ関数の シグネチャーを知っていれば利用可能 main.exe add.dll ・ ・ ・ myadd() ・ ・ ・ myadd(){ } LoadLibrary 起動 GetProcAddress 実行時にDLLをロードしてから関数のアドレスを探し出して呼び出すこともできる 12/19
14.
Copyright © NTT
Communications Corporation. All rights reserved. EXEとDLLを結びつける仕組み IATとEAT B.DLL EAT b() ⇨ RVA of b C.DLL EAT c() ⇨ RVA of c A.EXE B.DLL b() ⇨ B Base +RVA C.DLL c() ⇨ C Base +RVA IAT B Base + C Base + 13/19
15.
Copyright © NTT
Communications Corporation. All rights reserved. IATテーブルの取得実験 C:Usershatasrcdllinjection>cl dumpmain.c add.lib /nologo dumpmain.c C:¥Users¥hata¥src¥dllinjection>dumpmain myadd=-1 dumpIAT DLL:add.dll AddressOfData:00019F30 myadd => F1BA1000 DLL:imagehlp.dll AddressOfData:00019F40 ImageDirectoryEntryToDataEx => FFBD21C0 DLL:KERNEL32.dll AddressOfData:0001A258 TerminateProcess => 7796C140 AddressOfData:0001A454 WriteConsoleW => 779331E0 AddressOfData:0001A446 CreateFileW => 77930D10 AddressOfData:0001A438 CloseHandle => 77941910 AddressOfData:00019F6C GetModuleHandleA => 77935A80 add.dllのIAT / myadd関数のアドレス imagehlp.dllのIAT kernel32.dll のIAT 14/19
16.
Copyright © NTT
Communications Corporation. All rights reserved. (1)攻撃対象のプロセス内メモリに偽DLLのファイル名を書き込む ・VirtualAllocExとWriteProcessMemoryを使う (2)偽DLLを攻撃対象のプロセスに読み込ませる ・CreateRemoteThread を使う. 起動パラメータは, LoadLibraryと上記で書き込んだリモートアドレス (3)攻撃対象のプロセスのIATの,ターゲット関数のアドレスを偽DLLの関数アドレスで上書き ・偽DLLのDllMain関数で実行 DLLインジェクションの手順 15/19
17.
Copyright © NTT
Communications Corporation. All rights reserved. イメージ図 main.exe add.dll prtintf(“a+b=%d“,add(15,3)); Create RemoteThread ⇨LoadLibrary 起動 IAT add.dll add => X add(){ return a-b; } X inj.exe newadd.dll main.exe add.dll newadd.dllZ newproc(){ return a+b; } DllMain(){ IAT書き換え } Z 16/19
18.
Copyright © NTT
Communications Corporation. All rights reserved. DLLインジェクション実験 ① ② ③ ④ ①ターゲットプロセスを起動 main.exe ②ターゲットプロセスのプロセスIDを調査 ③DLLインジェクション実行 ④ターゲットプロセスのバグが修正された 17/19
19.
Copyright © NTT
Communications Corporation. All rights reserved. APIフック アプリケーション WinAPI kernel32.dll DLLインジェクション で挿入したkernel32.dll の偽物 呼ばれたパラメータをそのまま 使って本物のAPIを呼ぶ APIコールのログ収集 18/19
20.
Copyright © NTT
Communications Corporation. All rights reserved. 告知 技術書典#3 日時 2017/10/22 (日) 11:00〜 17:00 場所 アキバ・スクエア 主催 TechBooster/達人出版会 一般参加 無料 技術系同人誌即売会 出展案内 サークル名:おかか通研 書名:公開鍵暗号計算演習書 予価:500円 (ご注意)17時までやっていますが,半数のサークルは 14時頃に売り切れ閉店します.入場時に並びますが,な るべく午前中にお越しください.
Download now