ss
| RSS | RSS Forum | AboutUS |
Disarankan menggunakan browser selain Internet Explorer, resolusi minimal 1024x768
...
UserName:
PassWord:
     Lost?
Daftar jadi Anggota !
 


stress? deadline kelewat?
bos ngamuk? pc meledak?
masuk sini !


KopiDarat v2
onPesanJaket
OpenID

(?)

e.g. myname.myhost.com


Main Menu
..:: onWebTools ::..
..:: onLastPosts ::..
LAST FORUM POSTS
goto Postmenampilkan data tabel ke caption komponen Panel(4)
 by PuNK_riE
 on 03. Jul at 03:17
goto Post[Sharing] Apa yang dilakukan klo lagi ga mood ngoding?(27)
 by pp1979
 on 02. Jul at 22:10
goto Postrent a coder(4)
 by pp1979
 on 02. Jul at 21:57
goto PostKopi Darat v2 (beta version) - rilis 5-juli-2009(219)
 by pp1979
 on 02. Jul at 21:52
goto Postjaket - update biaya pengiriman(20)
 by pp1979
 on 02. Jul at 21:44
goto PostJaket status (onDelivery Process)(64)
 by pp1979
 on 02. Jul at 21:40
goto PostThe Future of Delphi looks brighter than ever before!(11)
 by yayaretina
 on 02. Jul at 15:23

[Access Forum]


Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
LuriDarmawan
21 Post subject: Lomba hek-Shareware Aplikasi Delphi (spontanitas)  PostPosted: 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


Acara ini Terselenggara berkat kerja-sama (alphabetical-order):
- IlmuKomputer.Com, http://ilmukomputer.com
- KIOSS Project, http://kioss.com
- ServerMERDEKA, http://servermerdeka.com
- TekMatrik, http://tekmatrik.net

_________________
KIOSS Project, http://kioss.com

http://Delphi-Id.Org | http://Fox-Id.Org | http://PHP-Id.org
http://opensource-indonesia.com | http://VideoSilat.com | http://SilatIndonesia.com
 
 View user's profile Send private message  
Reply with quote Back to top
deLogic
Post subject:   PostPosted: 12-01-2006 13:29
onMage


Joined: 04-07-2005 10:44
Posts: 2240

wah yang repot gak boleh pake software komersial ya.. walaupun itu original... Sad

_________________
Official Site: http://home.bprasetio.or.id/
Blog: http://blog.bprasetio.or.id/ | http://bprasetio.wordpress.com/
Delphi: http://blog.bprasetio.or.id/category/delphi/ | http://bprasetio.wordpress.com/category/delphi/
Articles @ IKC: http://ilmukomputer.org/author/bprasetio/
Me @ Multiply: http://bprasetio.multiply.com/
Berhemat Listrik: http://berhemat-listrik.blogspot.com
Me @ Facebook: http://www.facebook.com/Bayu.Prasetio
 
 View user's profile Send private message  
Reply with quote Back to top
cyber_heckerOffline
Post subject:   PostPosted: 12-01-2006 14:03
onProfessional


Joined: 19-05-2005 20:32
Posts: 938

Status: Offline
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 :
Code:
HKCU\Software\Microsoft\Windows\Shell Extensions\ Approved\\055f48c1d4aecd9440bd294c3d3d7ec5\27115c0f47aa9d8317203db5a20ba112\

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.



tools yang digunakan : regmon
http://www.symcod.com/sniffers/ntregmon.zip
100% free. Razz

_________________
 
 View user's profile Send private message  
Reply with quote Back to top
SnipSnipOffline
Post subject:   PostPosted: 12-01-2006 14:15
onNovice


Joined: 19-12-2005 19:45
Posts: 15

Status: Offline
jadi?
CH mo ikutan lomba? ato sekedar memberi hint nihh?
Very Happy
 
 View user's profile Send private message  
Reply with quote Back to top
cyber_heckerOffline
Post subject:   PostPosted: 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 Very Happy. kekekeke.... tapi entar bagi yang menang, ya bagi-bagi dikit lah rejekinya. kan kita temen.. Razz wakakakak...

_________________
 
 View user's profile Send private message  
Reply with quote Back to top
deLogic
Post subject:   PostPosted: 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... Smile

_________________
Official Site: http://home.bprasetio.or.id/
Blog: http://blog.bprasetio.or.id/ | http://bprasetio.wordpress.com/
Delphi: http://blog.bprasetio.or.id/category/delphi/ | http://bprasetio.wordpress.com/category/delphi/
Articles @ IKC: http://ilmukomputer.org/author/bprasetio/
Me @ Multiply: http://bprasetio.multiply.com/
Berhemat Listrik: http://berhemat-listrik.blogspot.com
Me @ Facebook: http://www.facebook.com/Bayu.Prasetio
 
 View user's profile Send private message  
Reply with quote Back to top
deLogic
Post subject:   PostPosted: 12-01-2006 22:37
onMage


Joined: 04-07-2005 10:44
Posts: 2240

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...

_________________
Official Site: http://home.bprasetio.or.id/
Blog: http://blog.bprasetio.or.id/ | http://bprasetio.wordpress.com/
Delphi: http://blog.bprasetio.or.id/category/delphi/ | http://bprasetio.wordpress.com/category/delphi/
Articles @ IKC: http://ilmukomputer.org/author/bprasetio/
Me @ Multiply: http://bprasetio.multiply.com/
Berhemat Listrik: http://berhemat-listrik.blogspot.com
Me @ Facebook: http://www.facebook.com/Bayu.Prasetio
 
 View user's profile Send private message  
Reply with quote Back to top
EkoIndriOffline
Post subject:   PostPosted: 12-01-2006 22:54
onElite


Joined: 23-11-2005 19:14
Posts: 1185

Status: Offline
aq hanya kasih semangat aja deh...... moga cepet terselesaikan

_________________
Blog Delphi favourite:

www.ekoindri.wordpress.com
 
 View user's profile Send private message Send e-mail  
Reply with quote Back to top
cyber_heckerOffline
Post subject:   PostPosted: 12-01-2006 23:53
onProfessional


Joined: 19-05-2005 20:32
Posts: 938

Status: Offline
wakakaka... Very Happy. bukan sok.. emang udah gak mampu neh gimana mbikin kreknya Razz. cuma bisa mempelajari alur sederhananya. tapi klo mbikin kreknya, angkat tangan deh Razz. kekekekek...., mau pake debug gak bisa membaca assemblernya Sad hik.. hik..

_________________
 
 View user's profile Send private message  
Reply with quote Back to top
kifmesoftOffline
3 Post subject: RE: Lomba hek-Shareware Aplikasi Delphi (spontanitas)  PostPosted: 13-01-2006 00:58
onKnowledgeable


Joined: 02-04-2005 07:53
Posts: 176

Status: Offline
Ikutan ahhh....
Udah lama gak posting.... langsung ikut lomba... huhuhuhuhu...

Maaf rekan2.... saya duluan yach.. Wink


Tool yang saya gunakan :

[1] DeDe Ver 3.50.02 Copyright (c) 1999-2002 DaFixer (FREEWARE)
http://www.softpedia.com/get/Programmin ... DeDe.shtml

[2] Hiew v6.11 (Hacke's View) FREEWARE
http://egner-online.de/vc/download/hiew611.zip

[3] UPX (Ultimate Packer for eXecutables) FREEWARE
http://delphi-id.org/dpr/Downloads-inde ... id-113.pas


Langkah -langkah yang saya lakukan :

[#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 :

- DBLogDlg.dfm
- DBLogDlg.pas
- DBPWDlg.dfm
- DBPWDlg.pas
- x.dfm
- x.pas
- y.dpr

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.. Smile


< Bersambung ke Post saya yg kedua >
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
kifmesoftOffline
3 Post subject: RE: Lomba hek-Shareware Aplikasi Delphi (spontanitas)  PostPosted: 13-01-2006 01:02
onKnowledgeable


Joined: 02-04-2005 07:53
Posts: 176

Status: Offline
[#3] buka file "x.pas", pada bagian source tersebut akan terlihat Method "FormCreate"
berikut adalah cuplikannya :

Code:

procedure TfTemplate.FormCreate(Sender : TObject);
begin
(*
0046E2F0   55                     push    ebp
0046E2F1   8BEC                   mov     ebp, esp
0046E2F3   6A00                   push    $00
0046E2F5   6A00                   push    $00
0046E2F7   53                     push    ebx
0046E2F8   8BD8                   mov     ebx, eax
0046E2FA   33C0                   xor     eax, eax
0046E2FC   55                     push    ebp

* Possible String Reference to: 'é*Uùÿëë[YY]Ã'
|
0046E2FD   6825E44600             push    $0046E425

***** TRY
|
0046E302   64FF30                 push    dword ptr fs:[eax]
0046E305   648920                 mov     fs:[eax], esp

* Possible String Reference to: 'Aplikasi aktif'
|
0046E308   BA3CE44600             mov     edx, $0046E43C
0046E30D   8BC3                   mov     eax, ebx

|
0046E30F   E894020000             call    0046E5A8
0046E314   BA01000000             mov     edx, $00000001

* Possible String Reference to: 'namaaplikasi'
|
0046E319   B854E44600             mov     eax, $0046E454

|
0046E31E   E855F8FFFF             call    0046DB78
0046E323   0FB7C0                 movzx   eax, ax
0046E326   83F805                 cmp     eax, +$05
0046E329   0F8799000000           jnbe    0046E3C8
0046E32F   FF248536E34600         jmp     dword ptr [$46E336+eax*4]
0046E336   4E                     dec     esi
0046E337   E346                   jcxz    +$46
0046E339   005CE346               add     [ebx+$46], bl
0046E33D   006AE3                 add     [edx-$1D], ch
0046E340   46                     inc     esi
0046E341   0082E346009A           add     [edx+$9A0046E3], al
0046E347   E346                   jcxz    +$46
0046E349   00B2E34600BA           add     [edx+$BA0046E3], dh
0046E34F   6C                     insb
0046E350   E446                   in      al, $46
0046E352   008BC3E84E02           add     [ebx+$24EE8C3], cl
0046E358   0000                   add     [eax], al
0046E35A   EB6C                   jmp     0046E3C8

* Possible String Reference to: 'ga tau, ada salah apakah ini'
|
0046E35C   BA9CE44600             mov     edx, $0046E49C
0046E361   8BC3                   mov     eax, ebx

|
0046E363   E840020000             call    0046E5A8
0046E368   EB5E                   jmp     0046E3C8

* 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

* Reference to TApplication instance
|
0046E374   A1DC054700             mov     eax, dword ptr [$004705DC]
0046E379   8B00                   mov     eax, [eax]

* Reference to: Forms.TApplication.Terminate(TApplication);
|
0046E37B   E85C1BFFFF             call    0045FEDC
0046E380   EB46                   jmp     0046E3C8

* Possible String Reference to: 'Maaf, ada perubahan langsung secara
|                                 ilegal'
|
0046E382   B8FCE44600             mov     eax, $0046E4FC

* Reference to: Dialogs.ShowMessage(AnsiString);
|
0046E387   E828F8FBFF             call    0042DBB4

* Reference to TApplication instance
|
0046E38C   A1DC054700             mov     eax, dword ptr [$004705DC]
0046E391   8B00                   mov     eax, [eax]

* Reference to: Forms.TApplication.Terminate(TApplication);
|
0046E393   E8441BFFFF             call    0045FEDC
0046E398   EB2E                   jmp     0046E3C8

* Possible String Reference to: 'Maaf, ada perubahan langsung secara
|                                 ilegal'
|
0046E39A   B8FCE44600             mov     eax, $0046E4FC

* Reference to: Dialogs.ShowMessage(AnsiString);
|
0046E39F   E810F8FBFF             call    0042DBB4

* Reference to TApplication instance
|
0046E3A4   A1DC054700             mov     eax, dword ptr [$004705DC]
0046E3A9   8B00                   mov     eax, [eax]

* Reference to: Forms.TApplication.Terminate(TApplication);
|
0046E3AB   E82C1BFFFF             call    0045FEDC
0046E3B0   EB16                   jmp     0046E3C8

* Possible String Reference to: 'Maaf, aplikasi sudah expired'
|
0046E3B2   B830E54600             mov     eax, $0046E530

* Reference to: Dialogs.ShowMessage(AnsiString);
|
0046E3B7   E8F8F7FBFF             call    0042DBB4

* Reference to TApplication instance
|
0046E3BC   A1DC054700             mov     eax, dword ptr [$004705DC]
0046E3C1   8B00                   mov     eax, [eax]

* Reference to: Forms.TApplication.Terminate(TApplication);
|
0046E3C3   E8141BFFFF             call    0045FEDC

* Possible String Reference to: 'Aplikasi telah dijalankan "'
|
0046E3C8   6858E54600             push    $0046E558
0046E3CD   33D2                   xor     edx, edx

* Possible String Reference to: 'namaaplikasi'
|
0046E3CF   B854E44600             mov     eax, $0046E454

|
0046E3D4   E89FF7FFFF             call    0046DB78
0046E3D9   0FB7C0                 movzx   eax, ax
0046E3DC   8D55F8                 lea     edx, [ebp-$08]

* Reference to: SysUtils.IntToStr(Integer):AnsiString;overload;
|
0046E3DF   E8FC9FF9FF             call    004083E0
0046E3E4   FF75F8                 push    dword ptr [ebp-$08]

* Possible String Reference to: '" kali'
|
0046E3E7   687CE54600             push    $0046E57C
0046E3EC   8D45FC                 lea     eax, [ebp-$04]
0046E3EF   BA03000000             mov     edx, $00000003

* Reference to: System.@LStrCatN;
|
0046E3F4   E8D75EF9FF             call    004042D0
0046E3F9   8B55FC                 mov     edx, [ebp-$04]
0046E3FC   8BC3                   mov     eax, ebx

|
0046E3FE   E8A5010000             call    0046E5A8
0046E403   8BC3                   mov     eax, ebx

* Reference to: QForms.TCustomForm.Hide(TCustomForm);
|
0046E405   E87E010000             call    0046E588
0046E40A   33C0                   xor     eax, eax
0046E40C   5A                     pop     edx
0046E40D   59                     pop     ecx
0046E40E   59                     pop     ecx
0046E40F   648910                 mov     fs:[eax], edx

****** FINALLY
|

* Possible String Reference to: '[YY]Ã'
|
0046E412   682CE44600             push    $0046E42C
0046E417   8D45F8                 lea     eax, [ebp-$08]
0046E41A   BA02000000             mov     edx, $00000002

* Reference to: System.@LStrArrayClr(void;void;Integer);
|
0046E41F   E8505BF9FF             call    00403F74
0046E424   C3                     ret


* Reference to: System.@HandleFinally;
|
0046E425   E92A55F9FF             jmp     00403954
0046E42A   EBEB                   jmp     0046E417

****** 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 Very Happy


< Bersambung ke Post saya yg ketiga >
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
kifmesoftOffline
3 Post subject: RE: Lomba hek-Shareware Aplikasi Delphi (spontanitas)  PostPosted: 13-01-2006 01:04
onKnowledgeable


Joined: 02-04-2005 07:53
Posts: 176

Status: Offline
Ok,, saya perjelas lagi yaa....

Code:

* 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 :

  1. //.......
  2. If Not Expired Then
  3. Begin
  4. // *** flags / jalankan versi SHAREWARE
  5. End
  6. Else
  7. Begin
  8. ShowMessage('Maaf, aplikasi ini sudah tidak bisa diaktifkan');
  9. Application.Terminate;
  10. End;
  11. //.......


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

|
0046E31E   E855F8FFFF             call    0046DB78
0046E323   0FB7C0                 movzx   eax, ax
0046E326   83F805                 cmp     eax, +$05
0046E329   0F8799000000           jnbe    0046E3C8
0046E32F   FF248536E34600         jmp     dword ptr [$46E336+eax*4]
0046E336   4E                     dec     esi
0046E337   E346                   jcxz    +$46
0046E339   005CE346               add     [ebx+$46], bl
0046E33D   006AE3                 add     [edx-$1D], ch
0046E340   46                     inc     esi
0046E341   0082E346009A           add     [edx+$9A0046E3], al
0046E347   E346                   jcxz    +$46
0046E349   00B2E34600BA           add     [edx+$BA0046E3], dh
0046E34F   6C                     insb
0046E350   E446                   in      al, $46
0046E352   008BC3E84E02           add     [ebx+$24EE8C3], cl
0046E358   0000                   add     [eax], al
0046E35A   EB6C                   jmp     0046E3C8

* Possible String Reference to: 'ga tau, ada salah apakah ini'
|
0046E35C   BA9CE44600             mov     edx, $0046E49C
0046E361   8BC3                   mov     eax, ebx

|
0046E363   E840020000             call    0046E5A8
0046E368   EB5E                   jmp     0046E3C8

* 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


Terlihat ada lebih dari 1 instruksi lompatan yang melewati alamat "0046E36F"
gak masalah dong.... ambil aja yang paling depan.. Smile

Ok,, saya perjelas lagi ... !!!

Code:

0046E319   B854E44600             mov     eax, $0046E454

|
0046E31E   E855F8FFFF             call    0046DB78
0046E323   0FB7C0                 movzx   eax, ax
0046E326   83F805                 cmp     eax, +$05
0046E329   0F8799000000           jnbe    0046E3C8  << --- inilah celah pertahanan..!!


sekarang saya harus mengubah kodenya sehingga menjadi seperti ini :

Code:

0046E319   B854E44600             mov     eax, $0046E454

|
0046E31E   E855F8FFFF             call    0046DB78
0046E323   0FB7C0                 movzx   eax, ax
0046E326   83F805                 cmp     eax, +$05
0046E329   E999000000             jmp     0046E3C8


atau boleh juga seperti ini.. (saya lebih suka yang ini karena lebih mudah) :

Code:

0046E319   B854E44600             mov     eax, $0046E454

|
0046E31E   E855F8FFFF             call    0046DB78
0046E323   0FB7C0                 movzx   eax, ax
0046E326   83F805                 cmp     eax, +$05
0046E329   90                     nop
0046E32A   E999000000             jmp     0046E3C8



[#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 Very Happy
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....


< Bersambung ke Post saya yg keempat >
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
kifmesoftOffline
3 Post subject: RE: Lomba hek-Shareware Aplikasi Delphi (spontanitas)  PostPosted: 13-01-2006 01:06
onKnowledgeable


Joined: 02-04-2005 07:53
Posts: 176

Status: Offline
[#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 ... Very Happy

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.

terdapat 1 unit FREEWARE yang saya gunakan untuk melengkapi program patch
- MD5.pas (Matthias Fichtner) ---> http://www.fichtner.net/delphi/md5/md5.pas


< Bersambung ke Post saya yg kelima >
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
kifmesoftOffline
3 Post subject: RE: Lomba hek-Shareware Aplikasi Delphi (spontanitas)  PostPosted: 13-01-2006 01:11
onKnowledgeable


Joined: 02-04-2005 07:53
Posts: 176

Status: Offline
Program Nomor 1 :
-----------------




  1. unit ucracker;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7. Buttons, StdCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. Label1: TLabel;
  12. ed_korban: TEdit;
  13. bt_patching: TButton;
  14. sb_cari_korban: TSpeedButton;
  15. Label2: TLabel;
  16. OpenDialog1: TOpenDialog;
  17. procedure bt_patchingClick(Sender: TObject);
  18. procedure sb_cari_korbanClick(Sender: TObject);
  19. private
  20. { Private declarations }
  21. public
  22. { Public declarations }
  23. end;
  24.  
  25. var
  26. Form1: TForm1;
  27.  
  28. implementation
  29.  
  30. {$R *.DFM}
  31.  
  32. Uses md5;
  33.  
  34. Const
  35. // *** Delphi 5 Enterprise
  36. UKURAN_DIRIKU = 349696;
  37.  
  38. Var
  39. fMD5digest: String;
  40.  
  41. procedure TForm1.bt_patchingClick(Sender: TObject);
  42. Var
  43. s: TFileStream;
  44. fh: Integer;
  45. l, n: Integer;
  46. offs: Integer;
  47. b: Byte;
  48. begin
  49. s:= TFileStream.Create(ParamStr(0), fmOpenRead + fmShareDenyNone);
  50. If s.Size &gt; UKURAN_DIRIKU Then
  51. Begin
  52. If FileExists(ed_korban.Text) Then
  53. Begin
  54. s.Seek(UKURAN_DIRIKU, soFromBeginning);
  55. s.Read(l, SizeOf(Integer));
  56. SetLength(fMD5digest, l);
  57. s.Read(fMD5digest[1], l);
  58. If MD5Print(MD5File(ed_korban.Text)) = fMD5digest Then
  59. Begin
  60. fh:= FileOpen(ed_korban.Text, fmOpenReadWrite + fmShareDenyWrite);
  61. n:= 0;
  62. While s.Position &lt; s.Size Do
  63. Begin
  64. s.Read(offs, SizeOf(Integer));
  65. s.Read(b, 1);
  66. FileSeek(fh, offs, FILE_BEGIN);
  67. FileWrite(fh, b, 1);
  68. Inc(n);
  69. End;
  70. l:= FileSeek(fh, 0, FILE_CURRENT);
  71. If l &lt; FileSeek(fh, 0, 2) THen
  72. Begin
  73. FileSeek(fh, l + 1, FILE_BEGIN);
  74. SetEndOfFile(fh);
  75. End;
  76. FileClose(fh);
  77. ShowMessage('Done.. ' + IntToStr(n));
  78. End
  79. Else ShowMessage('Hash MD5 ERROR...');
  80. End
  81. Else ShowMessage('File Not Found : ' + ed_korban.Text);
  82. End
  83. Else ShowMessage('Data PATCH tidak ada...!!');
  84. s.Free;
  85. end;


< Bersambung ke Post saya yg keenam >
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
kifmesoftOffline
3 Post subject: RE: Lomba hek-Shareware Aplikasi Delphi (spontanitas)  PostPosted: 13-01-2006 01:13
onKnowledgeable


Joined: 02-04-2005 07:53
Posts: 176

Status: Offline
  1. procedure TForm1.sb_cari_korbanClick(Sender: TObject);
  2. begin
  3. If OpenDialog1.Execute Then
  4. ed_korban.Text:= OpenDialog1.FileName;
  5. end;
  6.  
  7. end.



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



< Bersambung ke Post saya yg ketujuh >
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT - 5 Hours
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2007 The PNphpBB Group
Credits