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
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
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
260
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
170
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
100
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
490
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
140
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
270
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
280
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
110
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
530
Press start. Python's next generation.
willingc
PRO
3
290
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
仕様駆動開発の消費期限
watany
20
9.2k
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
Typedesign – Prime Four
hannesfritz
42
3.2k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
It's Worth the Effort
3n
188
29k
Abbi's Birthday
coloredviolet
3
9.6k
Discover your Explorer Soul
emna__ayadi
2
1.3k
From π to Pie charts
rasagy
0
340
The Curse of the Amulet
leimatthew05
2
14k
GitHub's CSS Performance
jonrohan
1033
470k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
960
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
230
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
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
• • • • • •
• • •