Pernahkah Anda melihat Splash Screen bergambar pada sebuah software, entah itu software
trial utilities, Game dan lainnya? Artikel ini akan menunjukkan kepada Anda bagaimana cara
menyisipkan sebuah Splash Screen bergambar dengan menggunakan bitmap yang akan muncul secara
otomatis setiap kali software dijalankan. Artikel ini sedikit banyak hampir sama dengan artikel
sebelumnya
“Tutorial Injeksi Executable – MessageBox”. Pembahasan masih dalam lingkup
Portable Executable (PE). Yang membedakan pada artikel kali ini adalah teknik pada penerapan injeksi.
Sebelum membaca artikel ini Saya harap Anda mempunyai latar belakang atau dasar
pemrograman bahasa C/C++/ASM, Portable Executable dan Reverse Engineering. Hal tersebut akan
membantu dan mempermudah Anda untuk memahami artikel ini. Maaf, Saya sudah berusaha
menyederhanakan pembahasan pada artikel ini agar bisa dipahami oleh semua orang, namun jika masih
sulit dipahami Saya mohon maaf. Karena dasar ilmu Saya adalah dunia peternakan bukan komputer, jadi
Saya tidak bisa menjelaskan dengan gaya bicara programmer pada umumnya..

Beberapa hal yang perlu Anda persiapkan adalah :
- IID King v1.0 buatan SantMat dari tim Reverse Engineering Immortal Descendants.
- Notepad atau teks editor yang Anda sukai.
- Assembler (Saya menggunakan Microsoft Macro Assembler atau MASM link download silahkan cari di Google).
- Target file executable.
- Palmall cigarettes, a cup of coffe and Cradle of Filth-Beyond Eleventh Hour.mp3 (Anti ngantuk
) - MRHPx Splash Add, program ini mampu menyisipkan Splash Screen bitmap secara instant. Anda
bisa mempergunakan program ini jika Anda bosan membaca artikel Saya.
CATATAN : File target, source code dan tool telah disertakan bersama artikel ini. Jika tidak tersedia Anda
bisa mendownloadnya di website Saya. Untuk mendapatkan source code yang lain, silahkan melalui
kontak email Saya.
Teori Yang MembosankanSedikit berbicara tentang teori. Menyisipkan sebuah kode Splash Screen seperti Dialog Window
(Jendela) dan resource eksternal pada file executable bukanlah hal yang mudah, semuanya tergantung
pada keahlian Reverse Engineering yang Anda miliki, karena jika terjadi kesalahan akan membuat file
executable menjadi rusak. Terlebih lagi persoalan menjadi semakin rumit jika Anda menghadapi file
executable yang tidak memiliki resource ataupun IMPORT API LIBRARY yang diperlukan. Karena tidak
seorangpun di dunia ini yang rela menghabiskan waktunya di depan komputer melakukan puluhan
proses injeksi hanya untuk membuat jendela dialog membosankan yang bernama “Splash Screen” pada
sebuah file executable..:)
Untuk menyisipkan sebuah file bergambar atau bitmap image sebenarnya sangat mungkin untuk
diterapkan pada file Portable Executable (PE). Cara yang bisa dipergunakan salah satunya adalah dengan
membuat file DLL (Dinamic Link Library) sebagai resource dari Splash Screen bitmap. Setelah proses
injeksi, program akan menjalankan fungsi EXPORT LIBRARY yang terdapat pada file DLL. Meskipun hal
tersebut mungkin sedikit menghabiskan waktu daripada menyisipkan sebuah kode sederhana.
Step 1 : Membuat file Dynamic Link Library (DLL) dengan Assemblya) The DLL Fungsi DllEntryPoint adalah suatu metode masukan opsional ke dalam sebuah dynamic-link
library (DLL). Jika fungsi dipergunakan, maka akan dipanggil oleh sistem saat proses dan thread
diinisialisasi dan diakhiri, atau saat dipanggil ke fungsi LoadLibrary dan FreeLibrary.
DllEntry Proc hInst:DWord, reason:DWord, reserved1:DWord .If reason==DLL_PROCESS_ATTACH Push hInst Pop hInstance Call ShowBitMap .EndIf Mov Eax,TRUE Ret DllEntry EndPb) The Bitmap Proses ini dipergunakan untuk menampilkan Bitmap image Splash Screen yang berada pada
resource. Pada proses ini terdapat beberapa struktur yang dipergunakan antara lain :
- WNDCLASSEX
Import Library : -
Header File : winuser.h
Struktur WNDCLASSEX berisi informasi kelas window. Dipergunakan bersama fungsi
RegisterClassEx dan GetClassInfoEx. Struktur WNDCLASSEX mirip dengan struktur WNDCLASS.
Terdapat 2 perbedaan. WNDCLASSEX meliputi anggota cbSize, yang menetapkan struktur
ukuran, dan anggota hIconSm, yang berisi handle terhadap sebuah ikon kecil yang berhubungan
dengan kelas jendela.
- MSG
Import Library : -
Header File : winuser.h
Struktur MSG berisi informasi pesan dari suatu thread urutan pesan.
- CreateWindowEx
Import Library : user32.lib
Header File : winuser.h
Fungsi CreateWindowEx menciptakan suatu overlap, pop-up, atau anak jendela dengan suatu
perluasan gaya. Fungsi ini identik dengan fungsi CreateWindow.
ShowBitMap Proc Local wc:WNDCLASSEX Local msg:MSG Local hwnd:HWNDMov wc.cbSize, SizeOf WNDCLASSEX Mov wc.style, CS_HREDRAW Or CS_VREDRAW Mov wc.lpfnWndProc, Offset WndProc Mov wc.cbClsExtra, NULL Mov wc.cbWndExtra, NULL Push hInstance Pop wc.hInstance Mov wc.hbrBackground, COLOR_WINDOW+1 Mov wc.lpszMenuName, NULL Mov wc.lpszClassName, Offset NamaKelas Invoke LoadIcon, NULL, IDI_APPLICATION Mov wc.hIcon, Eax Mov wc.hIconSm, 0 Invoke LoadCursor, NULL, IDC_ARROW Mov wc.hCursor, Eax Invoke RegisterClassEx, Addr wc Invoke CreateWindowEx, NULL, Addr NamaKelas, NULL,\ WS_POPUP, CW_USEDEFAULT,\ CW_USEDEFAULT, 257, 309, NULL, NULL,\ hInstance, NULL Mov hwnd, Eax Invoke ShowWindow, hwnd, SW_SHOWNORMAL .While TRUE Invoke GetMessage, Addr msg, NULL, 0, 0 .Break .If (!Eax) Invoke TranslateMessage, Addr msg Invoke DispatchMessage, Addr msg .EndW Mov Eax, msg.wParam Ret ShowBitMap EndPc) The Window Proses ini dipergunakan untuk menampilkan jendela dialog. Pada proses ini terdapat beberapa
struktur yang dipergunakan antara lain :
- PAINTSTRUCT
Import Library : -
Header File : winuser.h
Struktur PAINTSTRUCT berisi informasi untuk sebuah aplikasi. Informasi ini bisa dipergunakan
untuk mengecat area klien pada suatu jendela yang dimiliki oleh aplikasi.
- RECT
Import Library : -
Header File : windef.h
Struktur RECT menggambarkan kordinat sudut kiri atas dan kanan bawah sebuah segi empat.
- Timer
Import Library : user-defined
Header File : winuser.h
Fungsi TimerProc adalah suatu fungsi gambaran-aplikasi callback yang memproses pesan
WM_TIMER.
WndProc Proc hWnd:DWord,uMsg:DWord,wParam:DWord,lParam:DWord Local ps:PAINTSTRUCT Local hdc:HDC Local hMemoryDC:HDC Local hOldBmp:DWord Local bitmap:BITMAP Local DlgHeight:DWord Local DlgWidth:DWord Local DlgRect:RECT Local DesktopRect:RECT.If uMsg==WM_DESTROY .If PenangananBitmap!=0 Invoke DeleteObject, PenangananBitmap .EndIf Invoke PostQuitMessage, NULL .ElseIf uMsg==WM_CREATE Invoke GetWindowRect, hWnd, Addr DlgRect Invoke GetDesktopWindow Mov Ecx, Eax Invoke GetWindowRect, Ecx, Addr DesktopRect Push 0 Mov Eax, DlgRect.bottom Sub Eax, DlgRect.top Mov DlgHeight, Eax Push Eax Mov Eax, DlgRect.right Sub Eax, DlgRect.left Mov DlgWidth, Eax Push Eax Mov Eax, DesktopRect.bottom Sub Eax, DlgHeight Shr Eax, 1 Push Eax Mov Eax, DesktopRect.right Sub Eax, DlgWidth Shr Eax, 1 Push Eax Push hWnd Call MoveWindow Invoke LoadBitmap, hInstance, Addr NamaBitmap Mov PenangananBitmap, Eax Invoke SetTimer, hWnd, 1, 5000, NULL Mov Timernya,Eax .ElseIf uMsg==WM_TIMER Invoke SendMessage, hWnd, WM_LBUTTONDOWN, NULL, NULL Invoke KillTimer, hWnd, Timernya .ElseIf uMsg==WM_PAINT Invoke BeginPaint, hWnd, Addr ps Mov hdc, Eax Invoke CreateCompatibleDC, hdc Mov hMemoryDC, Eax Invoke SelectObject, Eax, PenangananBitmap Mov hOldBmp, Eax Invoke GetObject, PenangananBitmap, SizeOf BITMAP, Addr bitmap Invoke StretchBlt, hdc, 0, 0, 257, 309,\ hMemoryDC, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY Invoke SelectObject, hMemoryDC, hOldBmp Invoke DeleteDC, hMemoryDC Invoke EndPaint, hWnd, Addr ps .ElseIf uMsg==WM_LBUTTONDOWN Invoke DestroyWindow, hWnd .Else Invoke DefWindowProc, hWnd, uMsg, wParam, lParam Ret .EndIf Xor Eax, Eax Ret WndProc EndPd) The Export Agar file DLL bisa berjalan normal, Anda harus membuat file *.DEF, misal : Splash.Def. Agar fungsi export
bisa berada dalam export tabel DLL. Kode “Splash.asm” sebenarnya tidak secara spesifik menggunakan
export seperti program “DLL NORMAL” pada umumnya, jadi sebagai contoh Saya sengaja memasukkan
2 buah proses yang ada. Bagi Saya yang penting program bisa berjalan sesuai harapan, untuk hal lain
seperti teori silahkan mempelajarinya di bangku kuliah, karena Saya tidak menyukai kuliah bidang
komputer! Biayanya terlalu mahal..
LIBRARY SPLASH.DLL EXPORTS ShowBitMap EXPORTS WndProcCATATAN : Jangan menyalin kode pada halaman ini untuk menghindari kesalahan coding. Silahkan
pergunakan kode yang telah disertakan. Saya sarankan Anda membaca terlebih dahulu penjelasan yang
terdapat dalam Source Code.
Step 2 : CRACKadabra®.. Jadilah program ajaib! Untuk melakukan proses compile, silahkan Anda klik ganda file dengan nama “Compile.bat”.
Jangan lupa sebelum melakukan proses compile, sesuaikan terlebih dahulu konfigurasi compiler MASM
yang terdapat pada komputer Anda.
Contoh : set letak=C:\masm32\bin set include=C:\masm32\include set lib=C:\masm32\lib
Screenshot Compile.batStep 3 : Proses injeksi file executable.
Screenshot Target.exe- Jalankan tool “IID King” load file “Target.exe”.. Jangan lupa berilah tanda cek pada menu Backup agar jika terjadi kesalahan pada saat injeksi, Anda bisa mengembalikan semua lagi.
- Pada kolom “Dll’s Name” masukkan nama file DLL yang akan Anda pergunakan, misal “Splash.dll”
- Pada kolom “Function’s Name (case sensitive)” Masukkan salah satu fungsi export yang diperlukan, Anda bisa mendapatkan fungsi export ini pada file “Splash.def”. Misal masukkan fungsi export “ShowBitmap” (tanpa tanda kutip). Untuk menambahkan fungsi export cukup klik tombol “+”, untuk menghapus fungsi export yang tidak Anda inginkan cukup klik tombol “-“.
- Setelah itu klik tombol “Add them!!” untuk melakukan injeksi pada target executable. Jika semua berjalan lancar, maka file target yang telah Anda injeksi akan menampilkan Splash Screen setiap kali executable dijalankan.
Screenshot IID KingFinal notes :File “Target.exe” yang dijalankan, secara otomatis akan me-load semua link statis DLL pada Import
Table, misal “Splash.dll” dan kemudian mengirim DLL_PROCESS_ATTACH kepada program target.
Perhatikan section baru dengan nama “.IIDKing” setelah terjadi proses injeksi. Dari sini bisa diketahui
tentang cara kerja file DLL tersebut beserta injeksinya. Mudah bukan? Saya harap Anda tidak menemui
kesulitan dalam mempelajari injeksi executable dari artikel
“Tutorial Injeksi Executable – MessageBox” sampai dengan artikel
“Tutorial Injeksi Executable – Splash Screen”. Bagi Anda
yang tidak sempat membaca artikel ini atau mungkin bosan membaca artikel ini, dan ingin
menggunakan cara instant langsung jadi seperti memasak mie instant, Anda bisa menggunakan software
MRHPx Splash Add..
Screenshot MRHPx Splash AddTeknik ini juga bisa dipergunakan untuk melakukan injeksi yang lain, tidak hanya Splash Screen.
Bayangkan saja jika ada orang yang melakukan injeksi program worm, exploit dan malware lainnya yang
merugikan ke dalam executable? Bukan MessageBox ataupun Splash Screen? Tentunya hal tersebut
akan sangat merugikan. Solusi dari Saya adalah lakukan
“Section Dump” atau
“Extract Overlay” kemudian lakukan analisa Reverse Engineering (Bukan begitu saudara Apakekdah? ). Hal tersebut
setidaknya akan membantu Anda memperoleh informasi yang cukup tentang malware yang disisipkan di
dalam executable. Sebagai catatan, Antivirus tidak selalu bisa diandalkan untuk hal seperti ini. Semoga
artikel ini bisa memberi manfaat bagi Anda dan membantu Anda menjaga diri Anda dari kejahatan
cyber. Terima kasih.
Download Executable Injection Tutorial – Part 2 : Splash Screen Part 1 Download Executable Injection Tutorial – Part 2 : Splash Screen Part 2MRHPx regards and messages :- My family for love, peace and emphaty.. Allah SWT and Muhammad SAW for life, light and everything..
- Reverse Code Engineering scene, Astalavista.MS, Blackhat Community, 0day,Indonesia veteran hAxx0r (You know who you are..
)
- Source code semua program atau hack tool (EXCEPT PRIVATE-SECRET TOOLS!) dari seluruh artikel dan rilis NeMeSiS_ByTe dan MRHPx bisa diperoleh dengan cara kontak melalui email baru Saya di atas.. Ehm, sori ganti Nickname sejak 2008 tidak lagi sebagai NeMeSiS_ByTe
Juga ganti email, ganti website, ganti peruntungan!
Long live reverser..!
PENTING :- Jika Anda request software atau tool yang tidak terdapat di website Saya atau sulit didapatkan (baik software gratis atau berbayar), harap mengganti biaya bandwith internet (Download Broadband) dan biaya pengiriman (CD Distribusi Pos). Harap maklum, Saya bukan milyuner yang mempunyai banyak uang, Saya tidak mungkin membiayai setiap request software dan tool yang Anda butuhkan.
- Untuk keperluan apapun harap menghubungi Saya melalui email Yahoo atau Facebook, karena nomer telpon Saya hanya untuk keperluan bisnis dan pekerjaan. Bukan dipergunakan untuk CHAT dan tanya jawab.