Alhamdulillah Terimakasih Doanya :)




Sunday, March 31, 2013

Cara Mengatasi Masalah Gagal Install Windows 7 "The computer restarted unexpectedly or encountered an unexpected error."

Pada kesempatan kali ini saya akan membahas tentang masalah yang terjadi pada saat instalasi windows 7. Saya akan fokuskan bagi anda yang mungkin mengalami masalah seperti yang saya alami dahulu. Oke langsung saja disini saya akan kupas tuntas melai dari latar belakang sampai solusinya. Mohon berkenan untuk membacanya sampai selesai sehingga anda dapat memahami lebih lanjut.


  • Latar belakang kejadian

Ketika itu saya di kasih amanah saya temen saya untuk memperbaiki masalah pada laptopnya. Pada saat itu laptop teman saya sedikit lambat dalam melakukan tugas apapun. Untuk startup aja dibutuhkan waktu sekitar 5 menit, padahal waktu normalnya aja cuma 30 detik untuk windows 7.

Wah, setelah saya pikir-pikir akhirnya saya putuskan untuk menginstall ulang laptop doi. Awalnya instalasi berjalan dengan baik tidak ada kendala dan lancar. Meskipun waktu yang saya tempuh untuk laptop yang sekedar baru selesai proses "Copying Windows Files" sudah sekitar setengah jam. Itu bukanlah waktu yang singkat, saya sempat menduga ada yang tidak beres dengan instalasi windows yang saya lakukan saat itu. Ketika laptop mau saya restart meskipun instalasi belum selesai, ternyata dengan tidak terduga instalasi kembali berjalan dengan baik dan seperti saat kita menginstall windows 7 pada umumnya akan diperlukan beberapa kali restart.

  •  Penyebab kejadian
Instalasi berlanjut sekarang saya sudah berada pada tahap penyempurnaan, di layar sudah nampak tulisan  "Setup is updating registry setting". Saya sangat bahagia saat itu dan berpikir instalasi akan berjalan dengan sangat baik. Saya sudah menunggu sekitar 10 menit. Akan tampak pada layar tidak terjadi peribahan sama sekali.

Karena kelelahan untuk menunggu setup yang tak kunjung selesai. Akhirnya saya tinggalin begitu saja untuk saya lihat nantinya. Sekitar 30 menit kemudian saya kembali lagi untuk mengecek bagaimana keadaan terbaru dari proses instalasi yang butuh kesabaran ekstra tadi. Dan ternyata masih saja Proccessing. Saya sangat sudah kehabisan kesabaran untuk itu semua, dan kemudian langsung ku matikan saja laptopnya dengan menekan tombol power pada laptop.

  • Puncak masalah

Saya masih belum menyerah dan berkeinginan untuk mengulangi instalasi dari awal lagi. Akan tetapi begitu saya set boot pada kaset CD saya, laptop tidak mau booting pada CD tersebut dan kembali lagi pada proses instalasi windows sebelumnya tadi. Tetapi instalasi terhenti dan memunculkan dialog

"The computer restarted unexpectedly or encountered an unexpected error. Windows installation cannot proceed. To install Windows, click "OK" to restart the computer, and then restart the installation."




Saya sudah mencoba berbagai cara untuk dapat menyelesaikan problem diatas. Mulai dari membeli CD baru, mengganti CD Windows XP dan Ubuntu. Akan tetapi dialog tersebut masih saja muncul.

  • Solusi Masalah

Setelah saya googling lebih lanjut, ternyata instalasi diatas tidak bisa dilanjutkan sama sekali. Tetap tenang saya menulis artikel ini memang bertujuan untuk memberi tahu anda bagaimana solusinya.

  1. Jika anda memakai Flashdisk untuk menginstall windows, Belilah DVD baru dan burn ISO file ke dalam DVD tersebut. Kemudian set laptop untuk booting ke DVD.
  2. Jika anda memakai DVD sebagai alat instalasi windows, seperti yang saya alami diatas. Maka anda harus menginstall ulangnya kembali menggunakan Flashdisk. Baca Cara menginstall ulang windows 7 menggunakan Flashdisk!



Saturday, March 30, 2013

Metode Hacking Dengan Timing Side Channel Attack

Dalam tulisan kali ini saya akan membahas tentang side channel attack khususnya timing attack. Kita tentu sering mendengar kata pepatah bahwa ‘Time is money”, ternyata selain dianggap uang, waktu juga bisa dijadikan senjata maut untuk memecahkan kode, kriptografi atau mendapatkan informasi rahasia lainnya.
Side Channel Attack
Timing attack adalah bagian dari keluarga besar side channel attack. Side channel attack adalah serangan yang memanfaatkan kebocoran informasi yang ditimbulkan karena aktivitas yang dilakukan mesin atau program. Seperti halnya di dunia fisik, setiap aktivitas yang dilakukan program sebenarnya menimbulkan “efek samping” atau jejak yang bisa diamati. Seperti menyelesaikan puzzle, dengan mengumpulkan kepingan-kepingan informasi yang bocor ini kita bisa menyelesaikan puzzle.
Kebocoran informasi yang bisa dimanfaatkan untuk side channel attack antara lain:
  • Informasi waktu respons
  • Konsumsi listrik
  • Suara
  • Radiasi elektromagnet
Sebagai ilustrasi coba bayangkan, bagaimana caranya mengetahui apakah Pentagon sedang merencanakan suatu operasi besar ?


pentagon

Mungkin ada yang menjawab, kita harus menyelundupkan mata-mata ke sana. Cara itu memang bisa dilakukan, tapi mengingat Pentagon penjagaannya super ketat, cara itu bisa dibilang mission impossible, sangat sulit, mahal dan beresiko tinggi. Cara lain yang bisa dilakukan dengan mudah dan murah adalah dengan Pizza!
domino
Lho kok bisa, apa hubungannya Pentagon dan Pizza ? Ternyata penjualan pizza Domino berhubungan dengan aktivitas yang dilakukan pegawai Pentagon. Ketika Pentagon sedang merencanakan atau melakukan sesuatu yang besar, maka akan terjadi aktivitas tinggi. Ketika aktivitas tinggi, banyak pegawai yang memesan Pizza sehingga penjualan pizza Domino akan melonjak.
Jadi ternyata informasi yang tampaknya sepele, penjualan pizza, bisa menjadi indikator yang cukup akurat untuk mengetahui apakah Pentagon sedang merencakan operasi besar. Mengenai indikator pizza ini pernah ditulis di washingtonpost.com tahun 1998 lalu.

Lie to Me
Saya termasuk penggemar serial TV “Lie to Me” yang menceritakan tentang seorang bernama Dr. Lightman yang memiliki kemampuan khusus untuk mendekteksi perasaan seseorang hanya dengan mengamati body language seseorang ketika menjawab suatu pertanyaan. Salah satu keahliannya adalah dia bisa menjadi “human lie detector” artinya dia bisa mengetahui apakah seseorang berbohong atau jujur.
lie-to-me
Ekspresi di wajah menunjukkan isi hati seseorang, apakah dia sedang sedih, gembira, marah atau berbohong. Ekspresi ini akan muncul secara alami jadi sulit untuk ditutup-tutupi atau dibuat-buat, kecuali mungkin orang yang sudah sangat terlatih atau mungkin seorang psikopat.
Bisa dikatakan ekspresi di wajah ini adalah bentuk kebocoran informasi yang bila dibaca oleh orang yang ahli bisa membocorkan informasi isi hati seseorang, jadi serangan dengan membaca ekspresi wajah ini juga salah satu bentuk side channel attack.
Timing Attack
Kalau kita cari-cari di internet, banyak sumber yang menyebutkan indikator yang bisa dipakai sebagai lie indicator.
seorang yang berbohong membutuhkan waktu processing lebih lama dari pada kalau dia sedang jujur
Ketika seseorang berbohong dia akan cenderung mengulur-ngulur waktu atau menunda waktu karena dia butuh waktu lebih banyak untuk berpikir. Kata-kata atau gerak gerik yang mengindikasikan bahwa dia sedang mengulur waktu karena butuh waktu processing lebih lama antara lain (sumber) :
  • repeat the question
  • adjust their clothing
  • start by speaking slowly, until confident
  • start with ‘well’, ‘actually’ and other words that delay
Cara mendeteksi kebohongan dengan melihat waktu respons yang dibutuhkan untuk menjawab pertanyaan adalah salah satu bentuk side channel attack atau lebih khusus lagi timing attack.
String Matching
Programmer ketika membuat program umumnya menggunakan algoritma yang seefisien dan secepat mungkin waktu eksekusinya, ini sudah menjadi insting dasar seorang programmer. Namun yang jadi masalah adalah insting dasar untuk mempersingkat waktu dalam tempo sesingkat-singkatnya ini justru menjadi kelemahan yang bisa dieksploitasi attacker.
Pseudo code untuk mengetahui apakah dua string sama atau tidak biasanya seperti ini:
Screen Shot 2013-03-27 at 3.24.05 PM
Perhatikan pseudo-code di atas yang pertama dilakukan adalah memeriksa apakah panjang string A dan B sama? Bila berbeda, fungsi langsung berhenti di situ dengan nilai false. Hal ini terlihat sangat logis, bila panjangnya saja sudah berbeda, untuk apa lagi harus memeriksa isinya.
Bila panjang A dan B sama, maka dilakukan pengecekan apakah byte pertama isinya sama? Bila byte pertama sama, fungsi akan berlanjut untuk memeriksa byte kedua, ketiga, keempat dan seterusnya. Namun bila byte pertama isinya berbeda, fungsi juga berhenti disini dengan nilai false. Ini juga sangat sesuai dengan insting programmer, bila byte pertama saja sudah berbeda, untuk apa memeriksa byte kedua, ketiga dan seterusnya.
Lalu dimana sebenarnya masalahnya pseudo-code di atas? Bukankah ini sangat logis dan sesuai dengan insting dasar programmer, menyelesaikan masalah tanpa masalah dan dalam tempo yang sesingkat-singkatnya?
Kebocoran Informasi Waktu
Grafik di bawah ini menunjukkan aktivitas apa yang dilakukan server untuk memeriksa apakah password yang dikirim client sama dengan password yang tersimpan di server. Setiap aktivitas yang dilakukan server tentu akan memakan waktu yang dalam gambar di bawah ini dilambangkan dengan t0, t1, t2, t3 dan seterusnya.
Screen Shot 2013-03-27 at 2.11.27 PM
Perhatikan pada t0, attacker mengirimkan password. Server akan memeriksa apakah panjang password yang dikirim client sama dengan panjang password yang tersimpan.
  • Bila panjang tidak sama, server akan memberi respons pada waktu t1
  • Bila panjang sama, tapi byte pertama tidak sama, server akan memberi respons pada waktu t2
  • Bila panjang dan byte pertama sama, tapi byte kedua tidak sama, server akan memberi respons pada waktu t3
Dari alur aktivitas tersebut terjadi kebocoran informasi yang fatal, dengan mengamati waktu respons, apakah t1, t2, t3, t4 dan seterusnya, informasi yang bisa didapatkan attacker adalah:
  • Panjang password di server
  • Posisi byte yang salah
Dua informasi tersebut sudah cukup untuk mendapatkan password yang dirahasiakan di server.
Sebenarnya timing attack ada banyak bentuk dan variasinya, tidak hanya string matching saja. Pada dasarnya timing attack bisa dilakukan pada aplikasi yang membocorkan informasi pada clientnya dalam bentuk perbedaan waktu respons.
Sebagai contoh, potongan pseudo-code di bawah ini menunjukkan logika bahwa bila secret key adalah bilangan ganjil maka program akan memanggil fungsi doA() yang diketahui menghabiskan waktu 10 ms, sedangkan bila secret key adalah bilangan genap, maka program akan memanggil fungsi doB() yang lebih lama dibandingkan doA().
Dengan cara mengirimkan informasi ke server dan mengamati waktu responsnya, apakah 10 ms atau 15 ms, seorang attacker bisa mengetahui bahwa secretkey yang dipakai adalah bilangan ganjil atau genap.
Screen Shot 2013-03-27 at 10.44.51 PM
Contoh lain adalah potongan pseudo-code di bawah ini. Ceritanya ini adalah potongan kode yang menangani proses transfer ke suatu rekening tujuan. Bila potongan kodenya seperti ini, maka seseorang yang mengirimkan uang ke rekening tujuan bisa mengetahui saldo rekening tujuan dengan cara mengamati waktu transfer.
Bila ketika transfer ke rekening XXX waktu yang dibutuhkan adalah 1 ms, maka isi rekening XXX diyakini di bawah 100 ribu. Bila ketika transfer ke rekening XXX waktu yang dibutuhkan adalah 5 ms, maka isi rekening XXX diyakini antara 100 ribu sampai 1 juta rupiah. Namun bila waktu yang dibutuhkan untuk transfer adalah 20 ms, maka isi rekening tersebut diyakini berisi lebih dari  satu juta.
Screen Shot 2013-03-27 at 10.44.57 PM
Itu adalah beberapa contoh bentuk-bentuk timing attack. Ada masih banyak lagi bentuk yang lain, tapi dalam tulisan ini saya akan fokuskan pembahasan pada timing attack pada string matching untuk mendapatkan secret key.
Ada yang bisa memberi contoh lain timing attack atau side channel attack di dunia nyata ? Mungkin waktu yang dibutuhkan KPK untuk menetapkan seseorang menjadi tersangka bisa dijadikan suatu indikator, lonjakan jumlah nasi box yang dikirim ke gedung KPK mungkin menandakan akan ada tersangka baru atau akan ada operasi tangkap tangan baru.
Contoh Kasus
Sebagai ilustrasi saya akan memberi contoh kasus yang bisa menunjukkan bagaimana timing attack bisa dilakukan untuk mencuri kunci rahasia. Berikut adalah contoh source code aplikasi (kita sebut sebagai guessme) yang vulnerable terhadap timing attack.
Screen Shot 2013-03-27 at 3.59.50 PM
Aplikasi guessme tersebut membaca file secretkey.txt yang berisi kunci rahasia, kemudian membandingkan dengan input dari user (argv). Bila input argument dari user sama dengan isi kunci dalam file secretkey.txt, maka program akan menampilkan ‘CORRECT’, namun bila salah program akan langsung keluar tanpa pesan apapun. Program di atas vulnerable karena ketika melakukan perbandingan dua string, program akan berhenti ketika panjang tidak sama atau ketika karakter pada posisi tertentu tidak sama.
Karena aplikasi tersebut membutuhkan file secretkey.txt, kita harus membuat file secretkey.txt dulu. Saya membuat script bash kecil untuk men-generate teks random dengan panjang 4-9. Script bash makerandom.sh ini digunakan untuk men-generate kunci rahasia secara random. Dalam skenario ini, sebagai proof of concept, saya sendiri tidak membaca isi file secretkey.txt dan kita harus mengetahui isinya dengan timing attack.
kali17
Setelah program dicompile, berikut adalah apa yang terjadi ketika kita menjalankan program tersebut tapi tidak tahu kunci rahasianya. Setiap kali kita memasukkan kunci yang salah, program akan langsung keluar tanpa berkomentar apa-apa.
kali17
Mengukur Waktu Eksekusi
Cara untuk mengukur waktu eksekusi adalah dengan mencatat waktu sebelum dan sesudah eksekusi kemudian menghitung perbedaan dua waktu tersebut. Agar pengukurannya akurat, kita membutuhkan fungsi yang bisa mendapatkan waktu dengan akurasi sampai nanosecond. Saya menggunakan fungsi clock_gettime() di Linux untuk mendapatkan waktu dengan akurasi sampai nanosecond.
Berikut adalah contoh program yang melakukan pengukuran waktu eksekusi. Perhatikan apa yang dilakukan program ini:
  1. Mengambil waktu sebelum eksekusi dengan clock_gettime
  2. Mengeksekusi program yang akan diukur waktu (dalam contoh ini: guessme) di child process
  3. Parent process menunggu dengan wait() sampai child process selesai menjalankan guessme
  4. Setelah child selesai mengeksekusi guessme, parent mengambil waktu sekarang dengan clock_gettime
  5. Menghitung selisih waktu dalam nanosecond antara sesudah dan sebelum eksekusi
Screen Shot 2013-03-27 at 8.51.48 PM
Bila source di atas dicompile (jangan lupa tambahkan -lrt di gcc) dan dijalankan, maka hasilnya seperti gambar di bawah ini. Output dari program ini adalah input string dan waktu eksekusi dalam nanosecond.
Ternyata setelah dijalankan waktu eksekusi guessme berbeda-beda dengan rentang yang lebar, terkadang rendah terkadang tinggi atau bahkan tinggi sekali. Mari kita coba jalankan program timingattack ini sebanyak 5.000 kali lalu kita plot hasilnya pada chart.
Screen Shot 2013-03-27 at 9.33.40 PM
Wow hasilnya ternyata cukup berantakan, ada banyak noise dengan nilai yang sangat tinggi atau sangat rendah. Sepintas kalau dilihat logika timing attack itu sederhana, kita hanya mengirim input ke server kemudian mengamati apakah waktu respons dari server adalah t1, t2 atau t3 dan seterusnya. Namun sebenarnya mengukur waktu respons server tidak sesederhana itu, waktu dari respons tidak pasti dan berubah-ubah, tergantung dari banyak faktor, antara lain load CPU, bandwidth jaringan dan faktor lain yang kita sebut sebagai noise/jitter.
Karena adanya noise/jitter itu maka kita tidak bisa mengukur hanya satu kali, kita harus melakukan banyak pengukuran dan mengambil rata-ratanya. Sebelum mengambil rata-ratanya akan lebih baik lagi kalau kita menyaring data agar data dengan nilai yang sangat tinggi atau sangat rendah dihilangkan sehingga lebih mencerminkan waktu eksekusi yang sebenarnya.
Saya menggunakan pendekatan sederhana untuk memfilter noise, semua data hasil sekian banyak pengukuran diurutkan dulu secara ascending, kemudian saya membuang 15% data tertinggi dan 15% data terendah sehingga hanya menyisakan 70% data di tengah yang tidak terlalu tinggi dan tidak terlalu rendah. Data yang telah difilter inilah yang kemudian akan diambil reratanya.
Berikut adalah source code program yang melakukan pengukuran waktu eksekusi sebanyak 10.000 kali, memfilter datanya kemudian mengeluarkan rata-rata waktu eksekusi.
Screen Shot 2013-03-27 at 9.47.15 PM
 Source code di atas mirip dengan yang sebelumnya hanya saja ada penambahan kode di bawahnya untuk melakukan sorting dengan QuickSort, kemudian 15% data tertinggi dan terendah dibuang kemudian dan terakhir dihitung rata-ratanya.
Mencari Panjang Kunci dengan Timing Attack
Pertama yang harus kita lakukan adalah mencari tahu panjang kunci dari waktu respons server. Bila waktu response dari server adalah t1, maka kemungkinan besar panjang password yang kita kirim salah, dan kita harus mencoba lagi dengan password yang berbeda panjangnya, sampai akhirnya kita mendapatkan waktu respons t2 yang berarti panjang password benar, tapi byte pertama salah.
Jadi cara mencari panjang kunci adalah dengan brute force (trial/error), dimulai dengan password yang panjangnya satu, bila salah, coba dengan password yang panjangnya dua, tiga, empat dan seterusnya.
Berikut adalah script bash yang digunakan untuk mencoba password dengan panjang 4-9.
Screen Shot 2013-03-27 at 4.17.11 PM
Dan berikut adalah hasil eksekusi script bash di atas.
kali6
Bila data di atas kita plot dalam chart maka akan terlihat jelas ada perbedaan waktu ketika kita mengirim guess dengan panjang 7 karakter. Ketika menerima input yang panjangnya 7, waktu responsnya sedikit lebih lama dibandingkan kalau panjang input bukan 7. Berdasarkan hasil pengukuran ini, kita cukup yakin bahwa panjang kunci adalah 7 karakter.
Screen Shot 2013-03-26 at 6.35.47 AM
Mencari Karakter ke-1
Setelah mengetahui bahwa panjang kunci adalah 7 karakter, selanjutnya kita harus mulai mencari isinya dimulai dari byte pertama. Cara mencari tahu isi byte pertama adalah dengan mengirimkan input sepanjang 7 karakter “a######”, “b######”, “c######” sampai dengan “z######” dan mengamati waktu respons dari setiap input tersebut. Dari semua input string tersebut, input string yang membuat waktu respons relatif lebih lama dibanding yang lain adalah tersangka utama isi byte pertama.
Screen Shot 2013-03-27 at 10.07.25 PM
Kita membutuhkan satu script lagi untuk melakukan brute force dari a sampai z. Script brutetime.sh di atas membutuhkan  argument berupa prefix (kecuali byte pertama tidak perlu) yang akan diconcat dengan byte yang dicoba dari a-z dan diakhiri dengan postfix berupa deretan karakter ‘#’. Berikut adalah output dari script brutetime.sh di atas.
kali12
Data di atas bila diplot dalam chart akan terlihat seperti gambar di bawah ini.
Screen Shot 2013-03-26 at 2.16.03 PM
Dari grafik di atas terlihat bahwa ketika kita mencoba guess dengan string ‘z######’ waktu responsenya lebih tinggi daripada yang lainnya sehingga kita bisa yakin bahwa karakter pertama adalah ‘z’.
Mencari karakter ke-2
Setelah kita yakin bahwa karakter pertama adalah ‘z’ selanjutnya kita harus mencari karakter ke-2. Caranya adalah dengan mengirimkan input string sepanjang 7 karakter: ‘za#####’, ‘zb#####’, ‘zc#####’ sampai ‘zz#####’ kemudia mengamati waktu respons dari setiap input tersebut. Input string yang membuat waktu responsnya relatif lebih lama dibanding yang lain diduga adalah isi karakter ke-2.
kali13
Chart di bawah ini menunjukkan bahwa waktu respons dari input string ‘zf#####’ relatif lebih tinggi dibanding yang lain, sehingga kita bisa menduga dengan keyakinan tinggi bahwa huruf kedua adalah ‘f’.
Screen Shot 2013-03-26 at 6.42.29 AM
Mencari karakter ke-3
Kita lanjutkan dengan cara yang sama untuk mencari karakter sesudah ‘zf’.
kali7
Dari hasil chart di bawah ini terlihat bahwa input string ‘zfa####’ mendapatkan waktu respons yang relatif lebih lama dibanding yang lain sehingga kita yakin bahwa karakter ke-3 adalah huruf ‘a’.
Screen Shot 2013-03-26 at 6.45.03 AM
Mencari karakter ke-4
Mari kita mencari tahu karakter ke-4 sesudah ‘zfa’. Gambar di bawah ini adalah output dari script brutetime.sh dengan argument zfa (3 karater yang sudah diketahui).
kali14
Pada chart di bawah ini ada satu titik data outlier yang terpencil, berbeda sendiri dari kelompoknya, data ini bisa diabaikan dan dianggap sebagai noise. Waktu respons untuk input string ‘zfam###’ terlihat konsisten lebih tinggi dibanding yang lain sehingga kita bisa meyakini bahwa karakter ke-4 adalah huruf ‘m’.
Screen Shot 2013-03-26 at 6.46.33 AM
Mencari karakter ke-5
Ayo tinggal 3 lagi byte lagi. Gambar di bawah ini adalah output dari script brutetime.sh dengan argument zfam (4 byte yang sudah diketahui).
kali15
Berikut adalah chart dari output data di atas.
Screen Shot 2013-03-26 at 6.49.39 AM
Kali ini hasilnya tidak sebagus sebelumnya. Ada tiga kandidat yang diduga sebagai karakter ke-5, yaitu i, o atau x yang nilainya tidak berbeda banyak. Kalau ada kasus begini kita bisa uji sekali lagi untuk tiga huruf tersebut. Berikut adalah hasil pengujiannya.
kali9
Ternyata hasilnya kandidat zfami## hasilnya konsisten lebih tinggi dari 741 ribu, sedangkan zfamo## dan zfamx## hasilnya jauh di bawah zfami dan setara dengan huruf lainnya. Input string ‘zfamo’ dan ‘zfamx’ ketika ditest terlihat lebih tinggi dari seharusnya mungkin karena CPU load kebetulan sedang tinggi.
Mencari karakter ke-6
Satu lagi karakter yang harus kita cari dengan timing attack adalah karakter ke-6. Dengan cara yang sama dengan yang sebelumnya, berikut adalah output dari script brutetime.
kali16
Hasil di atas ketika diplot sebagai chart memperlihatkan bahwa input string ‘zfamip#’ mendapatkan waktu respons lebih tinggi di banding yang lain sehingga kita yakin bahwa 6 karakter pertama adalah zfamip.
Screen Shot 2013-03-26 at 7.00.47 AM
Mencari karakter terakhir
Mencari karakter terakhir tidak perlu dengan timing attack karena input string yang benar akan meresponse dengan ‘CORRECT’. Kita butuh script untuk melakukan brute force karakter terakhir mulai dari ‘a’ sampai ‘z’. Script di bawah ini adalah script untuk melakukan brute force karakter terakhir.
Screen Shot 2013-03-27 at 10.28.29 PM
Bila script di atas dijalankan kita bisa mendapatkan konfirmasi positif bahwa kunci rahasia yang panjangnya 7 karakter adalah ‘zfamipd’. Sumber: http://www.ilmuhacking.com/










kali8

Friday, March 29, 2013

Cara Menginstall Windows 7 Tanpa Memformat Harddisk dan Partisi Tambahan

Kali ini saya akan membahas tentang cara menginstall windows 7 tanpa harus membuat partisi baru. Sebenarnya waktu itu saya punya masalah disaat sedang gencar-gencarnya muncul Windows 8 Developer preview, saya tidak mempunyai cukup banyak free space pada harddisk saya. Jika saya melakukan shrink volume pada salah satu partisi di komputer saya maka saya tidak akan bisa mengembalikan ukuran partisi ke sedia kala tanpa harus di format ulang - hapus partisi - dan kemudian menggabungkannya kembali.

Sungguh disayangkan jika hal itu terjadi, kita harus repot-repot membackup data dan segala macem kan?. Hehehe tenang kita punya solusinya, adalah Virtual Harddisk yang memudahkan kita dalam menghemat partisi pada harddisk kita, cara kerja Virtual Harddisk adalah dengan membuat file yang berekstensi *.vhd yang berukuran sama seperti ukuran partisi yang akan kita buat.

Oke langsung aja.

  1. Mengatur menu booting ke CD atau Flashdisk

    Seperti halnya kita menginstall ulang windows 7 seperti biasanya, tentu kita harus mengatur dimana komputer seharusnya booting
  2. Install windows advanced

    Anda harus memilih pilihan ini karena anda akan melakukan Clean Install

  3. Tekan Alt + F10

    Hal ini bertujuan untuk memunculkan Command Prompt. Ke jendela Partisi
  4. Ketikkan pada CMD "Notepad" tanpa tanda petik kemudian klik File - Save as . .Jangan lewatkan yang satu ini. Karena hal ini untuk memudahkan kita melihat di partisi mana file *.vhd yang akan kita buat. Dengan begitu kita akan bisa melihat drive kita dan juga file kita.

     


     
  5. Tentukan dimana Partisi yang akan anda gunakan

    Coba perhatikan pada gambar diatas! Saya ingin membuat file "*.vhd" saya di drive D:\ akan tetapi pada saat masuk instalasi windows, saya tidak dapat menemukan partisi dengan letter D:\. Setelah saya lihat lagi ternyata partisi saya yang biasanya berletter D:\ sekarang berganti
    menjadi A:\ disinilah saya ingin menempatkan File Vhd saya.
  6. Tutup Notepad - masuk kembali ke layar Cmd - Ketikkan "Diskpart" tanpa tanda kutip

     Bertujuan untuk menjalankan aplikasi bernama Diskpart. Lihat gambar dibawah ini!



  7. Pembuatan File *Vhd Ketikkan pada DISKPART seperti dibawah ini
    Create vdisk file="A:\windows7.vhd" maximum=40000
    Select vdisk file="A:\windows7.vhd"
    Attach vdisk

    Keterangan:
    Pada argumen diatas saya akan membuat vhd file di partisi A:\ berukuran 40.000 Mb
     
    Jika sudah seperti gambar dibawah ini maka anda tinggal sedikit lagi

  8. Close Diskpart kembali ke instalasi windows
    Setelah semua hal yang diatas sudah anda lakukan kini tinggal anda menginstall windows pada partisi vhd. Caranya klik pada Refresh kemudian akan muncul partisi baru yang masih berupa Unallocated.


  9. Klik pada "Unallocated Space" kemudian "Next"

    Jika tombol next tidak berfungsi ada baiknya anda buat partisi baru dengan mengeklik pada "New" tanda bintang berwarna kuning. Format seperti halnya anda membuat pertisi biasa.


Uninstal Program Secara Sempurna Tanpa Aplikasi Tambahan

Keberadaan aplikasi sangat berguna ketika memang harus melibatkan aplikasi tersebut, terutama jenis-jenis aplikasi yang memang acap kali terlibat dalam kegiatan sehari-hari seperti Microsoft Office, Antivirus, Browser, Chat Client dan lain sebagainya. Namun, terlalu banyak aplikasi dengan fungsi yang sama justru dapat memberatkan komputer. Tetapi mencopot aplikasi ternyata tidak serta merta menghapus data yang dibawanya dahulu, sehingga perlu ada tindakan tambahan agar aplikasi benar-benar sirna dari komputer.
Uninstall aplikasi tanpa aplikasi tambahan
Nah, ini dia panduan uninstal program secara sempurna tanpa bantuan aplikasi pihak ketiga, Anda dapat melakukannya sendiri tanpa aplikasi remover lainnya yang justru akan menambah beban komputer.
Akan ada 4 tahap yang nanti kita bahas, antara lain:
  1. Mencopot program melalui Control Panel
  2. Menghapus sisa file dari folder program
  3. Menghapus Registry program
  4. Menghapus folder Temp program

Mencopot Program Melalui Control Panel

  • Tanpa membuang waktu lagi, kita masuk ke langkah pertama yaitu mencopot program melalui fungsi Control Panel, kita mengambil aplikasi Mozilla sebagai bahan percobaan.
Untuk Windows XP: Buka Control Panel – Add/Remove Programs
Windows Vista / 7:Buka Control Panel – Programs and Features – lalu pilih aplikasi yang ingin dicopot dan klik menu Uninstall.
Uninstall aplikasi melalui Control Panel pada Windows

Menghapus sisa file dari folder program

  • Walaupun program telah Anda copot melalui Control Panel, tetapi beberapa files program kemungkinan besar masih tertinggal di dalam folder sistem. Untuk menghapus sisa file, Anda dapat memeriksa folder berikut ini, jalankan fungsi Run dan masukkan salah satu kode berikut:
%programfiles%
%appdata%
  • Buka dahulu folder Program Files, temukan folder program yang masih tersisa lalu hapus.
Hapus semua file dan folder setelah proses uninstall aplikasi
  • Kemudian buka folder data aplikasi dengan mengetikkan %appdata% pada fungsi Run, kemudian temukan folder Mozilla dan hapus folder tersebut.
Membuang file dan folder aplikasi pada Windows

Menghapus Registry program

  • Dalam melakukan langkah ketiga ini, sebaiknya lakukan dengan perlahan dan hati-hati. Dalam beberapa situasi, program yang dicopot tidak secara otomatis menghapus key registry sehingga justru memberatkan sistem. Untuk menghapus key registri jalankan fungsi RUN dan jalan satu persatu direktori berikut dan temukan direktori terkait program Mozilla.
HKEY_CURRENT_USER\Software
HKEY_LOCAL_MACHINE\SOFTWARE
HKEY_USERS\.DEFAULT\Software
  • Untuk Windows versi 64-bit pastikan Anda juga memeriksa direktori berikut ini:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • Temukan direktori terkait Mozilla dan hapus registry tersebut secara permamen.
Membuang aplikasi dari registry Windows

Menghapus folder Temp program

  • Jalankan fungsi RUN dan ketikkan satu persatu perintah berikut ini:
%temp%
temp
  • Temukan folder yang berkaitan dengan aplikasi yang ingin Anda hapus, dalam kasus ini adalah Mozilla kemudian hapus folder tersebut.
Hapus temporary aplikasi Windows
Setelah melakukan ke-empat langkah di atas, kini aplikasi Mozilla telah 100% terhapus dari sistem dan tidak lagi memberikan beban tambahan terhadap kinerja komputer. Anda dapat melakukan tindakan yang sama kepada jenis aplikasi lainnya jia dirasa perlu.

Source:
 
FastNCheap Blog

Windows 8 RTM activator by Diaz team 29 Maret 2013

Akhirnya ketemu juga. Itulah kata yang tepat mungkin, untuk menggambarkan bagaimana sulitnya menemukan activator windows 8 ini. Activator ini saya persembahkan untuk abang-abang yang punya windows 8 tapi belum active. Dan cara penggunaannya juga sangat mudah saya rasa, sehingga saya tidak harus menjelaskan panjang lebar terlebih lanjut.


Ngomong-ngomong tentang windows 8, versi OS dari microsoft ini memang paling terdepan tentang teknologinya. Bagaimana tidak saya hanya membutuhkan waktu kurang dari 9 detik untuk dapat startup ke windows 8 dari keadaan komputer yang belum dinyalakan. Memang sangat cepat, akan tetapi perlu anda ingat juga bahwa windows 8 bukanlah windows kawakan. Jadi ya.... masih banyak bug disana sini yang harus ditingkatkan lagi kinerjanya. Cara untuk meningkatkannya bagaimana? Tentu, dengan windows update.

Windows update akan melakukan beberapa patch yang perlu dilakukan untuk mengubah kinerja windows 8 lebih baik lagi. Begitu juga activationnya sendiri juga akan di re-scan untuk memvadilated serial key-nya. Jadi saya sarankan seperti halnya di windows 7, maka anda juga harus mematikan automatic update.

Oke cukup basa-basinya silahkan langsung saja abang-abang unduh file ZIP dibawah ini. Setelah terdownload, extract seperti bisa dan kemudian silahkan baca Readme.txt terlebih dulu.

Incoming search term:
  • Windows 8 RTM crack download
  • Windows 8 activator
  • Windows 8 Permanent Activator