Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜマルウェア解析は自動化できないのか
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuma Kurogome
August 14, 2016
Programming
4.4k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
なぜマルウェア解析は自動化できないのか
セキュリティ・キャンプ全国大会2016 講義資料
Yuma Kurogome
August 14, 2016
More Decks by Yuma Kurogome
See All by Yuma Kurogome
The Art of De-obfuscation
ntddk
15
28k
死にゆくアンチウイルスへの祈り
ntddk
54
39k
Linear Obfuscation to Drive angr Angry
ntddk
4
920
Peeling Onions
ntddk
7
3.8k
仮想化技術を用いたマルウェア解析
ntddk
8
27k
An Introduction to Drawbridge(ja)
ntddk
10
3.5k
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
640
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
660
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
250
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
150
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
970
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
210
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
570
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
150
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
120
テーブルをDELETEした
yuzneri
0
150
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
The World Runs on Bad Software
bkeepers
PRO
72
12k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
780
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
490
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
240
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Transcript
None
None
None
None
None
• • • • • • • • • •
• • • •
• • • •
• • • • • • • • • •
• • • •
• • • • • • • • • •
• • •
None
• • • • • • • • • •
• • • • • • • • • • • • • • • • • • • •
• • • • • •
typedef struct _IMAGE_OPTIONAL_HEADER { WORD Magic; ... DWORD SizeOfCode; //
コード全体のサイズ ... DWORD AddressOfEntryPoint; // エントリポイントのアドレス (RVA) DWORD BaseOfCode; // コード領域のベースアドレス (RVA) DWORD BaseOfData; // グローバル変数などの値が確定していないデータ領域のベースアドレス (RVA) DWORD ImageBase; // 仮想メモリにロードされるときの開始(ベース)アドレス // RVAはImageBaseのアドレスを引いた相対アドレス ... DWORD SizeOfImage; // メモリにロードされたときの全体サイズ DWORD SizeOfHeaders; ... IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; // インポート情報やエクスポート情報などへのアドレス (RVA) } IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;
None
• • • • • •
None
• • • • • • •
• • • • • • • •
• • • •
• MOV EBX, EAX ADD EAX, $0x4 … MOV EBX,
EAX ADD EAX, $0x4 … • • • mov_i32 ebx, eax movi_i32 tmp1, 0x4 add_i32 eax, tmp1 •
•
•
None
None
• • • • • • • • •
• • •
• • • • •
• • • • •
None
• • • • •
• • • • • •
• •
• • • • • • • •
from datetime import date from hashlib import sha256 def dyre_dga(num,
date_str=None): if None == date_str: date_str = '{0.year}-{0.month}-{0.day}'.format(date.today()) tlds = ['.cc', '.ws', '.to', '.in', '.hk', '.cn', '.tk', '.so'] hash = sha256('{0}{1}'.format(date_str, num)).hexdigest()[3:36] replace_char = chr(0xFF & ((num % 26) + 97)) return '{0}{1}{2}:443'.format(replace_char, hash, tlds[num % len(tlds)]) todays_domains = [dyre_dga(i) for i in xrange(333)]
• • • •
• •
• • •
None
None
• • • • • • • • •
• • • •
• •
cmp eax, 0x7E0 je 0xdeadbaad if(x!=2016) Invalid. ASSERT( INPUT_*_*_* =0hex7E0
); (a1 or !a2 or a3 … or an) and (b1 or b2 or !b3 … or !bn) and …
None
• •
•
None
• •
None
•
None
• • • • • •
• • •