(Ab)using Microsoft's Symbol Servers, for Fun and Profit
Kalau kamu suka utak-atik Windows executables pake Ghidra, pasti ngerti deh rasanya lupa-lupa inget command yang dipakai. Nah, ini tips santai tapi berguna banget buat nge-analisa file Windows, misal ARM64 usbxhci.sys.
Kenapa PDB itu Penting?
Debug symbols (.pdb) itu ibarat peta harta karun. Tanpa ini, fungsi di Ghidra cuma bakal muncul kayak FUN_1c003ac90()—bingung mau mulai dari mana. Dengan .pdb, fungsi bisa muncul dengan nama yang lebih masuk akal, misal XilRegister_ReadUlong64(). Praktis banget!
Ngambil Symbols dari Microsoft
- Pastikan sudah install Windows SDK atau Windows Driver Kit. Kalau punya Visual Studio 2019, biasanya udah termasuk.
- Cari
symchk.exediC:\Program Files (x86)\Windows Kits\10\Debuggers\x64\ - Copy driver yang mau dianalisa ke folder tertentu, misal
USBXHCI.SYS - Jalankan command ini di CMD:
"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /s srv*https://msdl.microsoft.com/download/symbols /ocx .\ USBXHCI.SYS
Kalau sukses, kamu bakal lihat:
SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1
Dan voila! usbxhci.pdb muncul di folder kamu.
Ghidra & .pdb
Dengan .pdb, Ghidra bisa kasih nama fungsi yang masuk akal. Misal, kamu mau cek kenapa rear USB-A di Raspberry Pi 4 nggak jalan di Windows 10, simbolnya bisa nunjuk kalau ada function buat akses 64-bit xHCI register jadi dua 32-bit.
Patching Driver
Kamu bisa edit USBXHCI.SYS untuk ngubah instruksi ARM64 tertentu dari tbnz → tbz supaya akses 64-bit jadi dua 32-bit. Tapi inget, begitu diubah, signature driver bakal rusak dan Windows bakal nolak booting.
Solusinya:
- Update PE checksum pake
PEChecksum64.exe - Self-sign driver supaya Windows nggak lempar error 0xc000000f
- Kalau mau boot dari USB di Pi4, bisa juga hapus 1 GB RAM limit:
bcdedit /store Y:\EFI\Microsoft\Boot\BCD /deletevalue {default} truncatememory
Kesimpulan
Intinya, simbol Microsoft itu berguna banget buat debugging. Bisa bikin hidup kamu lebih mudah kalau mau ngecek driver Windows, utamanya dengan Ghidra. Bonusnya, kalau mau iseng, bisa juga dipakai buat patch driver ARM64 di Raspberry Pi 4. Tapi tenang, ini bukan tutorial full Windows 10 di Pi 4, cuma tips simbol server aja
<< Beranda