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
16
28k
死にゆくアンチウイルスへの祈り
ntddk
55
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
11
3.5k
Other Decks in Programming
See All in Programming
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
1k
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
150
Oxlintのカスタムルールの現況
syumai
6
1.2k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
340
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
210
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
180
act1-costs.pdf
sumedhbala
0
150
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
130
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
810
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
230
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
380
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
210
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Mobile First: as difficult as doing things right
swwweet
225
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.6k
Scaling GitHub
holman
464
140k
From π to Pie charts
rasagy
0
220
The Curious Case for Waylosing
cassininazir
1
420
Optimizing for Happiness
mojombo
378
71k
The agentic SEO stack - context over prompts
schlessera
0
840
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
550
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
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
• • • • • •
• • •