Post subject: Lomba hek-Shareware Aplikasi Delphi (spontanitas) Posted: 12-01-2006 12:24
onApaAdanya
Joined: 15-03-2005 06:04
Posts: 1357
Lomba hek-Shareware Aplikasi Delphi (spontanitas)
Aplikasi ini adalah suatu model aplikasi dengan perlindungan diri untuk penggunaan selama 30 (tiga puluh) hari (teknologi shareware sederhana)
Aplikasi ini dibuat dengan bahasa pemrograman Delphi tanpa ada komponen tambahan
Didalam aplikasi ini dilengkapi dengan beberapa rutin enkripsi dan anti debugging sederhana (nonVCL)
[XX] TUGAS KASUS
1. Peserta diminta untuk memberikan informasi/deskripsi teknologi -shareware- yang digunakan aplikasi ini
2. Peserta menjabarkan apa dan bagaimana cara/langkah yang digunakan.
3. Buat Suatu aplikasi/tools dalam bahasa pemrograman delphi untuk mem-bypass aplikasi ini.
[XX] SYARAT DAN KETENTUAN LOMBA
[00] Peserta Wajib mematuhi syarat dan ketentuan lomba
[01] Uang Pendaftaran: Rp. 0 !
[02] File didownload dari http://delphi-id.org/dpr/Downloads-inde ... id-137.pas
[03] Tidak diperbolehkan menggunakan tools komersial (terlebih lagi [****]) apapun
[04] Tidak diperbolehkan menggunakan komponen komersial (terlebih lagi [****]) apapun
[05] Peserta wajib mencantumkan tools/komponen yang digunakan beserta url/link tekait yang valid
[06] Peserta wajib mencantumkan versi Delphi yang digunakan
[07] file tools beserta source hanya dipublikasikan melalui forum delphi-id.org
[08] Rutin, Diagram, flowchart dipublikasikan melalui forum
---- Telah disediakan image-uploader di http://share.delphi-id.org
---- source dituliskan ke dalam forum dengan menggunakan bbcode [ pas ] .. [ /pas ]
[09] Tidak diperkenankan memberikan link download terhadap file hasil
[10] Hanya ada 1 (satu) pemenang
[11] first valid-post first win
[12] Hasil investigasi anda dikirimkan hanya melalui http://delphi-id.org/dpr/PNphpBB2-viewtopic-t-525.pas
[13] Dalam beberapa kondisi, file source akan sangat mungkin diminta secara langsung sebagai pembuktian bahwa posting hasil adalah valid.
[14] kontak valid dari penyelenggara hanya berasal dari @kioss.com, baik from maupun replay-contact
[15] Penilaian suatu posting dan penentuan pemenang dilakukan sewaktu-waktu tanpa pemberitahuan apapun, dalam interval waktu yang juga tidak ditentukan.
[16] Kru/Tim/Staff KIOSS-Hosting, KIOSS-Project, KIOSS-Lawyer dan ServerMERDEKA tidak diperkenankan untuk mengikuti lomba.
[18] Jika ada perselisihan, tindakan hukum dari peserta tidak berlaku.
[17] Keputusan Penilaian dan Penyelenggaraan tidak bisa diganggu gugat.
[XX] Hadiah Pemenang
[01] Uang senilai:
---- Rp. 500.000, jika kasus terpecahkan sebelum tanggal posting 15 Januari 2006
---- Rp. 300.000, jika kasus terpecahkan sebelum tanggal posting 19 Januari 2006
---- Rp. 200.000, jika kasus terpecahkan sebelum tanggal posting 29 Januari 2006
[02] Free Domain .INFO selama 1 (satu) tahun dari TekMatrik, http://tekmatrik.net
[02] Free Hosting 100Mb dari ServerMERDEKA.Com
---- peraturan hosting tetap mengikuti http://ServerMERDEKA.Com
Hadiah uang dikirimkan melalui rekening BCA, Permata, Niaga atau Mandiri
[XX] Ingat!
[--] Kemampuan seseorang bukan dinilai dari tools yang digunakan, tetapi pada kemampuan pribadi yang dikembangkan untuk diamalkan
wah.. sulit boss.., habis gak tau gimana logika enskripsinya. tapi buat temen-temen yang ingin berpartisipasi juga, disini ku beri bantuan sedikit logikanya :
program ini menggunakan sistem enkripsi. data-data yang digunakan untuk proses validasi data terdapat dalam registry dengan alamat :
pada key tersebut terdapat beberapa key yang menjadi kunci untuk validasi yaitu :
Code:
180782e6872d93b70839a26b5f848af2 = program terakhir kali dijalankan
53549147e13d7bb4c3b12104a8d4f2eb = program akan berakhir pada
599dcce2998a6b40b1e38e8c6006cb0a = status program
851e1702abcef5bad04a579c86844a66 = program pertama kali dijalankan
886bb73b3156b0aa24aac99d2de0b238= berapa banyak program sudah dijalankan. untuk bagian ini adalah kelipatan 4
9acb44549b41563697bb490144ec6258 = apakah program bisa dijalankan, jika 0 berarti iya, kalo 1 berarti tidak
e8116527afc595996aff21c8aef818c5 = hasil dari enkripsi gabungan tanggal antara kunci-kunci yang ada (banyak program dijalankan tidak termasuk, karena kita bebas ubah data diatas tanpa merusak program)
temen-temen bisa mengubah data, seperti contoh saya mengubah data 9acb44549b41563697bb490144ec6258 = 1, maka tampil program bahwa program tidak bisa dijalankan, kemudian saya ubah lagi datanya menjadi 0, malah program ngomong katanya program sudah pernah diubah secara ilegal. supaya program berjalan normal kembali, hapus semua key pada Approved. dan program bisa berjalan normal kembali.
jadi?
CH mo ikutan lomba? ato sekedar memberi hint nihh?
cyber_hecker
Post subject:Posted: 12-01-2006 14:49
onProfessional
Joined: 19-05-2005 20:32
Posts: 938
Status: Offline
iya, baru sekadar hint. habis ilmu ku belum nyampe kalo mo jadi hacker beneran seh . kekekeke.... tapi entar bagi yang menang, ya bagi-bagi dikit lah rejekinya. kan kita temen.. wakakakak...
_________________
deLogic
Post subject:Posted: 12-01-2006 14:54
onMage
Joined: 04-07-2005 10:44
Posts: 2240
udah kang CH maju aja.. terusin aja, tanggung, udah separo jalan tuh...
Kang CH.. sok atuh.. dikerjain aja.. kutunggu sampai jumat jam 930pagi dah, kalo enggak aku posting krek dengan caraku, cara yang lebih RADIKAL dan MENGERIKAN seperti yang dipake oleh kebanyakan kreker.. hiiii.. kabur...
wakakaka... . bukan sok.. emang udah gak mampu neh gimana mbikin kreknya . cuma bisa mempelajari alur sederhananya. tapi klo mbikin kreknya, angkat tangan deh . kekekekek...., mau pake debug gak bisa membaca assemblernya hik.. hik..
[#1] Membuang kompresi UPX. Tujuannya adalah agar kode program menjadi lebih mudah untuk dilihat
mungkin ini bagian yang dimaksud dengan "enkripsi" sederhana ...
Code:
upx -d KorBAN.exe -o KorBAN1.exe
[#2] Dekompilasi untuk melihat program sumber (sebagian tentu dalam bentuk kode "Assembler")
pada bagain ini saya menggunakan Tool "DeDe".
Setelah Save Project, maka akan tampak nama-nama file (unit) yang digunakan :
Oke,, sekarang setidaknya saya sudah mendapatkan sumber yang dapat untuk dilihat-lihat..
buka pake sembarang text editor .. (saya menggunakan HIEW) kalo pake NOTEPAD gak boleh kan..
****** END
|
0046E42C 5B pop ebx
0046E42D 59 pop ecx
0046E42E 59 pop ecx
0046E42F 5D pop ebp
0046E430 C3 ret
*)
end;
Terlihat jelas bahwa kode program Method/procedure "FormCreate" ini adalah gerbang terakhir
dari sisi pertahanan yg diterapkan.
Tidak perduli dengan teknik apa suatu pertahanan itu digunakan, bilamana kita bisa melihat
celah akhir untuk mematikan pertahanan itu... maka itu sudah lebih dari cukup
* Possible String Reference to: 'Maaf, aplikasi ini sudah tidak bisa
| diaktifkan'
|
0046E36A B8C4E44600 mov eax, $0046E4C4
* Reference to: Dialogs.ShowMessage(AnsiString);
|
0046E36F E840F8FBFF call 0042DBB4
Dalam logika pemrograman,, bagian tersebut pasti akan didahului dengan proses perbandingan.
Jika benar, maka proses berjalan... tetapi jika salah maka cuplikan seperti diataslah yg akan
dijalankan..,, contohnya sbb :
Lalu pada bagian manakah kita harus melakukan "PATCHING" .... ?
perhatikan baik2 setiap kode pada "Procedure FormCreate" tersebut..
Lihatlah lagi bahwa instruksi "call 0042DBB4" terletak pada alamat "0046E36F"
Jika terdapat instruksi lompatan yang melewati alamat tersebut, maka pastilah itu kode "if"
yang "Not Expired",, artinya program masih bisa berjalan normal...
saya perkecil lingkup kodenya :
Code:
* Possible String Reference to: 'namaaplikasi'
|
0046E319 B854E44600 mov eax, $0046E454
[#4] Sekarang saatnya menggunakan HEX EDITOR ,, gunakan HIEW versi 6.11
sebab selain cukup bagus... HIEW versi tersebut (6.11) juga masih FREEWARE
Instruksi lompatan (kode Hexa) yang saya ganti adalah "0F8799000000"
nah,, dengan mengunakan HIEW kita bisa mencari kode tersebut dan kemudian menggantinya
tentu diganti dengan hanya 2 byte aja sehingga menjadi "90E999000000"
Setelah selesai sekarang file korban1.exe yang udah di PATCH di kompres juga dengan UPX
Code:
upx -9 KorBAN1.exe -o KorBANX.exe
File hasil patch Dikompres maksudnya supaya program PATCH yang akan dibuat tidak terlalu
banyak menyimpan data2 patch....
[#5] Saatnya membuat program PATCH (Menggunakan Delphi 5)
========================================================
Yang perlu diingat adalah bahwa program target yang akan di PATCH dibungkus dengan kompresi UPX
sehingga program tidak akan bisa melakukan PATCH secara langsung dengan kode PATCH yg sudah
saya sebutkan diatas menggunakan Hex Editor..
Lagipula kita kan tidak bisa menyuruh user untuk menjalankan program UPX ...
Oleh karenanya... program yang dibuat harus bisa mewakili UPX tanpa melibatkan UPX
Langkah sederhana... adalah dengan mencatat perbedaan File Asli dengan File hasil PATCH yang
sudah di kompresi juga. Catatan perbedaan ini kemudian dapat dijadikan acuan oleh program PATCH
untuk membedah file Asli...
Ada dua program yg saya buat
1. Program untuk proses PATCHING
2. Program yang bertugas membuat data PATCH dan kemudian memasukkannya ke program nomor 1
prosesnya tentu dengan membandingkan dan mencatat perbedaan antara program .exe sumber dan
program .exe yang sudah di PATCH.
Konstanta "UKURAN_DIRIKU" pada source tersebut adalah ukuran File hasil kompilasi program
pertama... tentu dengan memberikan sembarang nilai yang besar... misal 1000000
kemudian setelah dikompilasi... lihatlah ukuran filenya.. dan yang saya lihat adalah 349696 byte
maka nilai tersebut yang saya isikan.
Harap dipahami bahwa data byte pada program tersebut diatas "UKURAN_DIRIKU" adalah data PATCH
yang akan diisikan oleh program nomor 2