Belajar .Net Reverse Engineering (1)

Assalamualaikum, mumpung lagi WFH banyak waktu luang, dalam rangka jadi manusia produktif, saya akan mulai lagi buat tutorial ya genks.

Bismillah,

Kali ini saya akan coba buat artikel tentang reverse engineering, mungkin sebelum kita mulai kisanak harus tahu dulu apa itu reverse engineering.

Reverse engineering dalam bahasa indonesianya rekayasa balik atau rekayasa mundur  adalah proses untuk membongkar material / kode program dan teknologi yang digunakan pada suatu object perangkat lunak (software).  Nah pertanyaannya sekarang kenapa seseorang melakukan reverse engineering ? Sebenernya pengetahuan tentang reverse engineering itu semacam pisau bermata dua, bisa dilakukan sebagai kejahatan contohnya untuk meng-crack suatu software, atau kebaikan seperti mempelajari karakteristik virus komputer untuk membuat antivirus. Nah oleh karna itu sebelum lanjut membaca, saya harap anda mengerti bahwa ilmu yang saya share dalam artikel ini netral ya, jadi anda bertanggangg jawab sendiri terhadap aplikasinya nanti, deal ?

Nah pada artikel kali ini kita akan belajar konsep atau cara melakukan reverse engineering pada aplikasi yang menggunakan .NET, kenapa harus .NET ? ya karna .NET adalah platform yang paling banyak digunakan untuk membuat desktop application setelah java. jadi kalau anda liat aplikasi-aplikasi yang dinstall di windows itu kebanyakan dibuat memakai teknologi .NET

Sekarang pertanyaannya bagaimana cara kita mengetahui bahwa suatu aplikasi (EXE) menggunakan platform .NET atau bukan ? Pada dasarnya semua aplikasi yang dibuat dengan .NET platfrom selalu menggunakan library mscore.dll nah jadi yang harus kita check adalah string “mscore.dll” dalam aplikasi tersebut. Saya sudah buat tool sederhana string-extractor yang bisa ando download di halaman portofolio saya.

Caranya mudah, anda hanya tinggal masukan parameter lokasi file exe yang akan di check dan output (txt file) untuk menyimpan hasil extraknya

Jika sudah anda tinggal check file outputnya, cari string “mscore.dll”, jika ada berarti aplikasi tersebut menggunakan platform .NET

Sampai disini saya anggap anda sudah tahu cara memeriksa platform .NET dalam suatu aplikasi. next kita akan coba belajar mengganti value string dalam suatu aplikasi .NET.

Agar lebih komprehensif pertama saya akan membuat suatu aplikasi simple menggunakan visual studio 2019 community edition (ini free lho yah)

Saya buat aplikasi sederhana menggunakan winform dengan satu button, jika button tersebut di klik akan menampilkan popup message “Hello world”

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox("hello world")
    End Sub
End Class

Jika dijalankan aplikasi ini akan menampilkan suatu form dengan tombol yang jika diklik akan menampilkan string “hello world

Untuk materi basic reverse engineering, sekarang kita akan coba mengganti kata “hello world!” dalam aplikasi tersebut menjadi kata lain yang kita inginkan.

Disini saya menggunakan tool JustDecompile untuk membongkar aplikasi .NET, anda bisa download toolnya terlebih dahulu dan jalankan, lalu open file .EXE tadi yang akan kita coba reverse.

Jika anda pernah belajar menggunakan platform .NET anda pasti akan paham bahwa kata hello world berada dalam suatu object button. Menggunakan tool Justdecompile Sekarang anda buka aplikasi tersebut lalu cari object button

Oh iya hampir lupa, pada tool justdecomplie menggunakan pluggin untuk reverse engineering, disini saya menggunakan pluggin reflexil, pada pluggin manager, buka pluggin reflexil

Disini kita lihat bahwa opcode untuk message box (msgbox) pada VB.NET adalah ldstr dengan operand value string “hello world” untuk merubahnya klik kanan pada opcode tersebut lalu pllih Edit

Nah disini kita ubah operand value menjadi “Hello Dunia” kemudian klik update, jika sudah lalu save as

Disini saya beri nama file yang sudah kita ubah menjadi WindowsApp1.Patched.Exe

Jika file EXE tersebut dijalankan akan menampilkan tampilan yang sama hanya saja jika tombol di klik kata-kata dalam popup nya sudah berubah menjadi Hello Dunia

SELAMAT !! ANDA TELAH MELAKUKAN REVERSE ENGINERING PERTAMA ANDA

Segini aja dulu ya, next artikel akan lebih menarik karena kita akan coba bermain-main mengubah algoritma program. Semoga bermanfaat. Assalamualaikum

One thought on “Belajar .Net Reverse Engineering (1)

Leave a Reply

Your email address will not be published. Required fields are marked *