halo gaes kembali lagi dengan gw Yukinoshita 47 kali ini gw emang lagi penasaran dengan dunia Reverse Engineering dan gw sekarang coba praktekkan dasar nya ya mau gimana lagi belajar otodidak tanpa guru dan komunitas pendukung ya ginilah jadi nya wkwkwkwk
belajar ginian masih bisa sendirian tapi kalo belajar agama jangan sendirian tong kalo bisa harus ada guru nya soalnya "belajar agama tanpa guru itu ya guru nya setan" :v
gw saranin lu siapin ghidra lu dulu dah yalu bisa baca di tutor sebelum nya disini : https://yukinoshita47.blogspot.com/2019/05/parrot-linux-install-ghidra-tool.html
oke cukup sudah basa basi nya kita mulai aja.
pertama download dulu file challenge nya di : https://crackmes.one/crackme/5c8e1a9533c5d4776a837ecf
buka terminal dan masuk sebagai root dengan perintah
sudo su
kemudian tekan enter
lalu input password dan tekan enter lagi
masuk ke direktori
cd Downloads
kemudian unzip file nya dengan perintah
unzip 5c8e1a9533c5d4776a837ecf.zip
dan kita disuruh input password nya
tenang aja password nya sudah ada kok di halaman faq nya disini password nya adalah crackmes.one
input password nya lalu tekan enter
kemudian jalankan ghidra dengan perintah
ghidra
kemudian tekan enter
setelah itu klik New Project
pilih non shared project lalu klik next
untuk project directory dan project name nya terserah kalian disini
project directory gw di /home/user/Documents/test
project name nya coba
lalu klik finish
lalu klik finish
kemudian pilih menu file lalu pilih import file
pilih file crack1_by_D4RK_FL0W lalu klik select file to import
klik aja ok
dan import berhasil selanjutnya pilih crack1_by_D4RK_FL0W klik kanan lalu pilih open with CodeBrowser
pilih yes
pilih analyze
nah disini gw menemukan password file binary nya dengan melihat function main hasil decompile dari function main nya adalah :
undefined8 main(void)
{
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
(__TMC_END__,"Crackme1 By D4RK_FL0W\n\nPassword: ");
_Z9readInputv();
if (password[0] != 'H') {
_Z6failedv();
}
if (password[1] != '1') {
_Z6failedv();
}
if (password[2] != 'D') {
_Z6failedv();
}
if (password[3] != 'D') {
_Z6failedv();
}
if (password[4] != '3') {
_Z6failedv();
}
if (password[5] != 'N') {
_Z6failedv();
}
if (password[6] != 0) {
_Z6failedv();
}
_Z7successv();
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(__TMC_END__,(ulong)(uint)(int)password[1]);
return 0;
}
{
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
(__TMC_END__,"Crackme1 By D4RK_FL0W\n\nPassword: ");
_Z9readInputv();
if (password[0] != 'H') {
_Z6failedv();
}
if (password[1] != '1') {
_Z6failedv();
}
if (password[2] != 'D') {
_Z6failedv();
}
if (password[3] != 'D') {
_Z6failedv();
}
if (password[4] != '3') {
_Z6failedv();
}
if (password[5] != 'N') {
_Z6failedv();
}
if (password[6] != 0) {
_Z6failedv();
}
_Z7successv();
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(__TMC_END__,(ulong)(uint)(int)password[1]);
return 0;
}
password nya tertera = H1DD3N
lebih jelasnya di gambar yang tertera dibawah ini.
kemudian untuk memastikan temuan password tadi ya buka terminal jalankan file crack1_by_D4RK_FL0W dengan perintah
./crack1_by_D4RK_FL0W
kemudian tekan enter
input password nya H1DD3N
kenapa password kagak H1DD3N0 ? karena script nya kan gini
}
if (password[1] != '1') {
_Z6failedv();
}
if (password[2] != 'D') {
_Z6failedv();
}
if (password[3] != 'D') {
_Z6failedv();
}
if (password[4] != '3') {
_Z6failedv();
}
if (password[5] != 'N') {
_Z6failedv();
}
if (password[6] != 0) {
_Z6failedv();
}
ya jawaban gw cuma bisa seperti ini aja liat aja gambar dibawah
ya cukup sampai disini aja kalo ada salah ya maklumin aja gw juga bukan ahli nya ahli dibidang ginian mau gimana lagi :v
ok sekian dan terimakasih.