Senin, 26 Desember 2016

Cracking Aplikasi yang Cek Lisensi ke Server bag 1

Assalamu'alaikum, salam sejahtera...

Akhirnya setelah berbulan-bulan offline, saya bisa kembali mempublish artikel lagi. Ketika saya melihat email, WOW, ketika saya melihat pemberitahuan facebook, WOW, ketika saya melihat komentar-komentar Anda, wat d'pak??? Apa para komenter di sini tidak bisa melihat tulisan di dalam box hijau di bawah????? Sampai-sampai ada yang menganggap saya penipu. 😭😠😠
Oh iya saya lupa saya mau ucapkan terima kasih kepada MasterWeb.com karena telah memberikan kalender 2017. MWN mantep, selain murah baik domain dan hostingnya, servernya juga stabil, selain itu dukungan full backupnya membantu banget.
 
Insya Allah kalau saya sudah punya kerja saya akan CLBK lagi. Sekarang mah boro-boro buat bayar sewa yang murah banget, buat isi kuota aja dikasih 😢...
Dikasih siapa? ada deh, tunggu artikel besok ya...
Jadi saya kasih tahu, saya tidak punya hp, saya hanya punya modem. Jadi kadang saya bisa dihubungi kadang saya tidak bisa dihubungi. Kadang saya membalas, sering saya tidak membalas. Kenapa? karena saya tidak punya kuota apalagi pulsa. Bahkan dua bulan kemarin, saya tidak mengaktifkan kartu saya sama sekali, kenapa? Karena kartu 3 saya hilang beserta modemnya.
Lalu saya beli modem baru. Sayangnya modem buatan ZTE ini semakin membuat saya sering offline. Jika dulu pada modem Huawei saya masih bisa menerima sinyal 3G meskipun naik turun. Sekarang saya tidak dapat sinyal 3G sama sekali. Anehnya, setiap hari sinyal 3G hanya ada pada jam 01.00 - 06.00. Ini modem ZTE yang enggak sensitif atau operator Tri yang sengaja menetapkan "jadwal"....
Oh iya, mau tahu berapa kecepatan rata-rata pada sinyal EDGE operator Tri di daerah saya? 

yoi 30Kbps alias 2KBps, kecepatan tertingginya cuma 10 KBps itupun jarang banget
Sekarang bisa nulis artikel berarti punya pulsa? TIDAK. Punya kuota? YA, dikit lagi. Online pakai modem? YA. Punya HP? Belum. Punya pacar? Belum. Punya istri? Belum. Udah kerja? Belum. Lah terus selama ini bagaimana bisa [menjalani] hidup?
Sekitar sebulan yang lalu akhirnya komputer saya terjual. Sebagian uangnya saya gunakan untuk membeli komputer lagi, di-downgrade-lah. Sebelumnya saya pakai core2duo, sekarang saya pakai pentium 4. Sebagian lagi uangnya saya gunakan untuk melamar kerja, namun belum rejeki saya, lamaran kemanapun belum ada yang menerima. Ya mungkin HRD nya juga mikir, ni orang tiga tahun gak kerja kemana aja??

Back To Topic
Sekarang ini sudah zamannya Internet of Things, manfaatnya banyak aplikasi dan program berbayar yang menggunakan pengecekan ke server untuk mengecek status pengguna. Apakah pengguna itu sudah terdaftar di server, apakah pengguna itu sudah bayar, atau apakah pengguna itu sudah habis keanggotaannya.

Tutorial kali ini tidak sepenuhnya cracking tapi ada bypass dan juga manipulasi cek lisensi di server. Dalam hal ini cracking adalah memodifikasi algoritma program. Hal ini adalah hal terakhir dan bahkan hanya bisa dilakukan oleh expert cracker, karena saat ini kebanyakan program yang dibuat tidak lagi "bisa di crack dengan ollydbg". Contohnya program-program yang menggunakan .net framework. Secara default, program yang dibuat dengan .net itu bisa didecompile sampai source code mentahnya kebaca. Namun pengembang juga semakin cerdik, mereka melakukan proteksi dan enkripsi agar tidak mudah di-crack.

Sebenernya masih bisa di crack, asal kita bisa tahu aloritma registrasinya dan letak dimana kita akan membalikkan gerbang logikannya. Sebagai contoh kita bisa membalikkan logikanya.
Misalnya saat server memberi respon "kode lisensi salah", normalnya program akan masuk ke "beritahukan pengguna bahwa lisensi salah" yang berupa Message Box. Namun kita bisa membalikkan logikanya dengan: jika menerima respon salah, maka lanjutkan program sebagai respon benar.
Namun ya... itu kita berhadapan dengan program yang diproteksi dan di enkripsi.

Agar bisa melakukan cracking atau bypass atau manipulasi pengecekan ke server, maka kita membutuhkan program yang bisa mengintip isi lalu lintas jaringan. Istilah inggrisnya capture network traffic, istilah kerennya sniffing. Banyak program sniffing yang telah saya coba, namun ada kelebihan dan kekurangannya. Untuk sekarang kita pakai SmartSniffer buatan nirsoft.

Loh kok tidak pakai WinPcap/Wireshark? Sayangnya keduanya tidak mendukung lalu lintas yang melalui usb modem. Nanti juga ada beberapa aplikasi lainnya yang akan muncul satu-persatu pada bahasan.

Perlu diketahui, bahasan ini adalah riset saya selama satu bulan penuh. Ditulis dengan bahasa ribet bagaimana saya sendiri melakukannya dari pakai smartsniff sampai membuat aplikasi sendiri. Tentunya artikel ini telah disingkat sesingkat-singkatnya meskipun bahasanya masih ribet dan bertele-tele tidak seperti tutorial cracking sebelumnya.

Untuk contoh aplikasi korban saya menggunakan program buatan sendiri
Download SmartSniff di sana www.nirsoft.net/utils/smsniff.html
Download TesAppLisenCek1 di sini

Sekarang pastikan koneksi internetnya aktif ya lalu coba jalankan TesAppLisenCek1 dan isi lisensinya asal-asalan,. Pasti ada pemberitahuan lisensi salah. Exit saja aplikasinya.

Sekarang untuk mengetahui kemana lisensi ini di cek, apa saja yang di cek, coba jalankan SmartSniff.
Pada jendela SmartSniff, menu Option > Capture Option, pilih koneksi internetnya.
 
Lalu pilih menu File > Start Capture atau tombol Play Hijau di toolbar.
Jalankan lagi TesAppLisencek1 dan isi lisensinya asal-asalan
Setelah ada message box exit saja aplikasi ini.
Kembali ke jendela smartsniffer, terlihat di sana ada baris baru berupa ip, port dsb.
Coba baris itu di klik, maka akan terlihat tujuan domain itu beserta isi yang dikirim. Bukan hanya yang dikirim juga balasan respon dari server. 

Dalam hal ini isi balasan server adalah "0".
Ow ow ow ow ow apakah jika "0" = lisensi salah maka "1" = lisensi benar?
Untuk mengetesnya, kita harus mendapat respon "1", caranya? Dengan membeli domain tersebut. Wkwkwkwk sama aja bohong
Cara termudah adalah membuat server sendiri di komputer kita dengan menginstall WAMPP atau XAMPP atau server apache lainnya. Tapi biar lebih sederhana saya pakai Apache Portable saja download di sana.

Oh iya di Windows 7 ke atas, secara default program script baik js atau vbs didisable sehingga kita tidak bisa menjalankan script js yang ada di file bat, untuk itu harus mengenablekannya di registry. Eits gak perlu repot-repot. Bagi yang punya smadav terbaru, pada tray icon smadav, klik kanan terus pilih Allow Windows Script dan Macro, until restart saja.
Kalo gak punya, download aja smadav, GAKR

Lalu sekarang jalankan start.bat, jika ada konfirmasi dari windows, pilih saja ok/allow access lalu biarkan jendela cmd terbuka.

Coba buka browser dan kunjungi http://localhost, jika ada tulisan Its Work berarti sudah sukses.

Kembali ke folder apache portable, ke folder htdocs, buat sebuah file baru bernama license.php lalu buka dengan notepad dan ketik angka 1. Udah itu aja lalu simpan dan keluar notepad.

 
Eh untuk langkah selanjutnya, buka lagi notepad, lalu buka file C:\Windows\system32\drivers\etc\hosts
Pada baris terakhir, tambahkan ini : 127.0.0.1 excrush.tk, lalu simpan dan keluar notepad.

Sekarang coba jalankan lagi TesAppLisencek1 dan isi dengan lisensi asal-asalan.
Bagaimana hasilnya?

Oke jadi singkatnya untuk membypass pengecekan ke server, kita membutuhkan :
- Menggunakan smartsniffer untuk mengetahui server lisensi dan apa responnya
- Menggunakan apache untuk membuat localhost sendiri dan halaman respon
- Mengedit file hosts untuk memanipulasi server pengecekan

Nah itu dia cara untuk memenipulasi pengecekan lisensi ke server tingkat 1. Sangat mudah karena respon yang dikirim hanya berupa teks biasa yang bisa dibaca. Meskipun kadang respon ada yang berupa JSON atau XML, tetapi mudah dimengerti. Misalnya :
contoh JSON :
{"lisensi:"{"App":"TesAppLisencek1","Status":"disable","Version":"0000","URL":"no"}}

Kira-kira mana yang menentukan lisensi? App:"TesAppLisencek1" untuk nama program, Version:"0000" mungkin untuk cek update, URL:"no" mungkin untuk url jika ada update terbaru. Ahh berarti yang menentukan lisensi adalah Status:"disable",,, lawannya disable adalah enable, blablabla dsb dst.

Contoh XML :

Kira-kira mana yang menentukan lisensi? "0000" mungkin untuk cek update, "no" mungkin untuk url jika ada update terbaru. Ahh berarti yang menentukan lisensi adalah "false",,, lawannya false adalah true, blablabla dsb dst.
---------------------------------------------------------------------------

Sekarang kita ke tingkat 2 yaitu pengecekan lisensi yang responnya berupa kode yang tidak kita mengerti
Toolnya masih sama pakai smartsniffer.
Untuk aplikasinya Download TesAppLisencek2 di sini
Silahkan coba jalankan dan lihat respon dari server pada smartsniffer. Sebuah respon yang tidak kita mengerti bukan?

Untuk itu kita bisa menggunakan ollydbg, tanpa cracking, cuma buat lihat string-stringnya aja. Jalankan lagi TesAppLisencek2 lalu jalankan ollydbg.
Pada menu File > Attach lalu pilih proses TesAppLisencek2.exe
Lalu pada menu View > Memory terus pada jendela Memory klik kanan Search
Pada input UNICODE masukkan string respon tadi, lalu hapus centang Case Sensitive lalu pencet OK

Lalu ditemukan string yang sudah kita kenal, yaitu 2a07e3ff3df21b226d0cd044d4a7cc83, respon jika salah.
Berarti string dibawahnya 0a8b7c7e6902f0c43ed559e84d65de33 adalah respon jika benar?

Sekarang silahkan buat lagi server manipulasi dikomputer dengan mengikuti langkah tingkat 1 di atas, tapi jangan lupa halaman pengecekan bukanlah license.php tapi lic.php oke??
-----------------------------------------

Sekarang untuk tingkat selanjutnya, pada dua tingkat di atas kita telah belajar melakukan sniffing dan bypass pada aplikasi yang menggunakan port 80 atau jalur HTTP biasa. Sekarang kita akan melakukan sniffing pada aplikasi yang menggunakan port 443 atau jalur HTTPS. Seperti diketahui jalur HTTPS itu melakukan enkripsi pada saat komunikasinya. Sehingga lalu lintas data dan informasi dipastikan aman, benarkah?

Sebagai percobaan, kita akan menggunakan TesAppLisencek3 download di sini.
Seperti tadi, coba masukkan lisensi dengan asal-asalan lalu capture trafik dengan Smartsniffer, Apa yang terjadi?
Kita tidak dapat mengetahui kemana server itu dikirim dan kita tidak bisa melihat data yang dikirim ataupun informasi yang diterima, karena terenkripsi. Untuk itu kita membutuhkan tool sniffing yang baru yang bisa menterjemahkan komunikasi https.
Aplikasinya bernama HTTPAnalyzer, silahkan download di sini.
Jalankan HTTPAnalyzer, lalu pencet tombol Start
Sekarang coba lagi jalankan TesAppLisencek3 lalu masukkan data asal-asalan, 
Setelah komunikasi selesai, lihat bagian bawah pada tab Header dan tab Response Content, sekarang terlihat tidak terenkripsi lagi.
Terus bagaimana mengcrack atau membypass / memanipulasi program tersebut? Apakah pakai ollydbg lagi atau ada tool lain? Atau gimana?
Jika ingin mengcracknya, silahkan saja. Karena saya masih newbie dalam hal cracking, saya akan melakukan bypass dan manipulasi server seperti pada dua tutorial di atas. 

Caranya? hehehe agar tutorial maksimal, maka saya akan menggunakan real app alias aplikasi berbayar buatan exrush.com aplikasinya bernama Tokobot. Selain menggunakan https, pengaktifan lisensi juga tidak akan berfungsi jika pada file hosts ada string exrush.com, dan yang paling penting aplikasi ini adalah .net framework yang dilindungi oleh SmartAssembly, hadeeuuhh saya sebagai cracker newbie nyerah deh.... Ampuunnn.
Namun banyak jalan menuju roma, Tak ada yang uncrackable, selama cracker tidak putus asa hehehe. Eiiitttsss... Di sisi lain, saya sebagai programmer newbie yang baik, yang tahu bagaimana susahnya memproduksi software, saya ingatkan :
 
Membuat software itu tidak mudah, melakukan riset pasar, membeli program compiler, belajar programming, trial and error, mempromosikan software. Banyak waktu,uang dan tenaga yang terbuang untuk menghasilkan sebuah software. 

Untuk itu ayo kita dukung programmer open source di Indonesia.

Laaahhh kirain mau ngajak beli software original ...
Hehehe soalnya saya juga menggunakan software original tapi bajakan....
Maksudnya?
Ingat kita bukan membeli software tetapi kita membeli lisensi penggunaan software.  Kata original di sini juga ada perbedaan, "original" yang saya maksud lebih ke "asli dari developer", Sedangkan "original" yang developer maksud lebih ke "membeli secara sah menurut hukum".
Software berbayar yang di crack – dipatch > software tidak original = software bajakan, contoh SIATA GARUDA
Software berbayar  didapat dari publisher = software original > key didapat dari keygen – bypass = software bajakan, contoh SMADAV

Berbeda dengan open source, meskipun ada beberapa software yang dijual, tapi kita beneran membeli program itu bukan membeli lisensi penggunaan saja. Bahkan pada open source bukan hanya programnya saja yang didapat tetapi juga source codenya kita dapatkan
-------------------------------------------------

Memanipulasi Pengecekan Lisensi ke Server dari Software buatan eXrush
Akhirnya sampai juga ke bahasan ini, untuk contoh, saya akan menggunakan aplikasi Tokobot v2.7. Awalnya seperti bahasan di atas, karena tokobot ini dienkripsi dan diproteksi menggunakan SmartAssembely bukan hanya itu kayaknya exrush juga mengenkripsi string yang ada ditubuhnya bahkan sebelum di compile. Melihat kenyataan ini saya hampir nyerah. Untunglah ketika ngeden saya dapat lampu di otak saya. 

Ketika melihat ke tubuhnya, iya stringnya di enkripsi, tetapi ketika dijalankan, string GUI-nya dapat terbaca. Hmmmm berarti saya dapat melihat string-string yang didekripsi oleh tubuhnya sendiri. Di mana? Di Memory Windows, sama seperti TesAppLisencek2 di atas. Masalahnya adalah jika kita pakai ollydbg, maka hal ini tidak efisien, untunglah Microsoft juga memberikan tool debugger .net yaitu WinDBG. Akhirnya dapat juga semua string mentah tokobot ini.
Hal pertama yang saya cari tentu saja string "exrush.com" yang mungkin saja menjadi alamat pengecekan lisensi. Setelah mengetahui URL pengecekan, saya coba memanipulasi server dengan membuat localhost. Eh ternyata jika ada string exrush di file hosts, pengecekan tidak bisa dilakukan.
Lalu saya coba menggunakan program NetLimiter: gagal, pakai Windows Firewall: gagal, mengubah file hosts sebelum mengklik tombol cek lisensi: berhasil, tetapi ternyata tokobot melakukan pengecekan setiap startup: gagal. Membuat windows akun baru dan mengubah permission file hosts: gagal.

Akhirnya setelah bertanya ke forum dan googling berhari dapat juga jawabannya "intercepting manipulating http/s request". Software yang saya pilih adalah Fiddler, karena software ini gratis eh ukurannya kecil kwkwkwkwkwkwkwkwk kuota saya terbatas buat download webscarab atau zaproxy atau burp atau yang lainnya. Lagian kan sudah tahu speed internet saya berapa....

Silahkan download fiddler di sana
Silahkan download Tokobot di www.exrush.com

Pasang dan jalankan Fiddler
Lalu pada menu File > Capture Traffic (12) apakah ada centang? Kalau belum ada, silahkan aktifkan centang Capture Traffic
Lalu pada menu Tools > Telerik Fiddler Options beri centang pada Capture HTTPS Connects dan juga pada Decrypt HTTPS traffic.
Jika ada peringatan tentang certifikat pilih saja Allow / OK / Yes dsb

Pasang dan jalankan tokobot, jangan lupa koneksi internetnya aktifin dulu
Di sini sudah terlihat, tokobot akan mengecek versi lewat dropbox
Untuk melihat apa permintaan dan balasan dari dropbox, Pilih tab Inspector lalu Pada bagian Response pilih Tab TextView
Kembali ke tokobot, ada pemberitahuan software harus diaktifkan, karena kita tidak punya key nya, eh punya dong... kan udah dicari di windbg key tokobot untuk pro version adalah monsterpro
 

Sekarang coba masukkan lisensi ini dan cek lisensi key

Yaahhh not found
Coba cek ke fiddler :
Okey kita analisa dulu
Informasi yang dikirim adalah key dan hardware ID, jika dilihat di sales page exrush di sini, dia mengatakan 1 lisensi hanya bisa digunakan di 1 komputer saja. Berarti:
request[hardware-id] adalah penentu apakah lisensi key ini sudah dipakai di komputer lain atau belum
key adalah penentu apakah pengguna ini sudah bayar atau belum, jadi ada kemungkinan key yang dibeli mempunyai format monsterproblablablabla, namun tak menjadi masalah karena kita hanya butuh monsterpro saja
Kemudia respon json
{"message":"Lisence Key not found"."code":"license_not_found"."next_check":120}
jika dilihat di sini  berarti kita tinggal menghapus kata "not" seperti ini?
{"message":"Lisence Key found"."code":"license_found"."next_check":120}
Masalahnya adalah bagaimana cara mendapat respon seperti ini sedangkan jika kita membuat server localhost dengan mengedit file hosts maka lisensi kita akan diblock???
Lalu saya lihat pada Fiddler di sebelah Tab Inspector ada tab Autoresponder, wkwkwkwkwk dengan sedikit coba-coba akhirnya bisa juga membuat responder. Ehhh,,,, ternyata
{"message":"Lisence Key found"."code":"license_found"."next_check":120}
bukanlah respon untuk lisensi yang benar....

Hmmmm setelah tiga hari bersemedi di gunung cekung saya lihat kembali string lewat WinDbg dan menemukan titik terang, lihat lagi bagian ini
 
Lalu saya coba lewat fiddler,
{"message":"Lisence Key found"."code":"ok"."next_check":120}
hasilnya? GAGAL.
 
Tapi lihat lagi ke string di atas, tokobot cuma membutuhkan kata "ok" saja. Hmmm saya coba lagi, hasilnya?

BERHASIL EUREKA!!!!!!!
----------------------
Jadi langkah memanipulasi lisensi software-software buatan exrush adalah :
Buatlah sebuah file respon, terserah namanya apa extensinya apa, yang penting isinya adalah
{"code":"ok"}
Pada fiddler buatlah sebuah autoresponder baru, seperti gambar ini
Pada url pattern masukan  https://www.exrush.com/member/softsale/api
Pada Action, pilih Find a File... lalu arahkan ke file respon tadi
Jangan lupa centang kotak Unmatched requests passthrough

Udah segitu aja, nanti sebelum menjalankan aplikasi, jalankan fiddler dahulu
-----------------------------
Saya bilang software-software? Yup semua software buatan exrush seperti The Gram Bot, Viral Video Finder, Video Box dan Bukalapak Advance Push menggunakan cara yang sama. Hanya berbeda key saja, masing-masing yaitu gram, vvf, mvc dan push.

Namun khusus untuk Advance Group Poster ada sedikit perbedaan server dan respon.
Pada url pattern masukan  http://keremunggahbale.info/aymentlicense/VerifyLicense.php
Lalu isi dari file respon adalah "1" kwkwkwkwk percis kayak TesApplicenCek1 di atas

****Akhirnya selesai juga artikel kali ini semoga bermanfaat****

Eh tunggu dulu, link download buat the gram bot, video box dan yang lainnya mana? Di situs exrush juga gak ada trialnya...?? Wkwkwkwkwkwk

Artikel akan berlanjut ke bagian 2, tunggu besok-besok ya...





Masih seperti dulu, maaf saya belum bisa membalas komentar, email dan pesan fbnya. 
Mengalami kecepatan seperti itu di zaman ini jadi pengen nonjok LCD huahahahah



PERHATIAN

Sudah lebih dari satu tahun saya tidak mempunyai HP atau HH. Meskipun saya mempunyai modem dan kartu yang masih aktif, tapi saya tidak punya pulsa dan jarang mengisi kuota untuk membalas pesan, telepon ataupun komentar Anda. Jadi mulai hari ini sampai waktu yang tidak ditetapkan, segala bentuk komunikasi kepada saya hanya melalui email saja. Jika Anda ingin menghubungi saya karena keadaan darurat (misalnya minta bantuan FB kena hack), silahkan baca dan pahami link ini, jika Anda menginginkan respon dari saya.

Mohon maaf apabila ada pesan, komentar, dan permintaan teman di facebook yang belum/tidak terbalas. Harap maklum.


Terima kasih
Dadan Purnama


0 komentar:

Poskan Komentar

Silakan tinggalkan komentar, kritik, saran atau apa saja yang penting sopan dan tidak SARA ya....

Jika ada pertanyaan atau request yang penting, bisa hubungi Admin di How to Contact

Terima kasih,
Dadan Purnama