Seorang teman saya mengunduh beberapa malware dari Facebook, dan saya ingin tahu apa fungsinya tanpa menginfeksi diri. Saya tahu bahwa Anda tidak bisa mendekompilasi .exe, tetapi bisakah saya setidaknya melihatnya di Assembly atau melampirkan debugger?
Edit untuk mengatakan itu bukan .NET dieksekusi, tidak ada header CLI.
debugging
winapi
assembly
decompiling
swilliams
sumber
sumber
Jawaban:
Dengan debugger Anda dapat melangkah melalui perakitan program secara interaktif.
Dengan disassembler , Anda dapat melihat perakitan program lebih terinci.
Dengan dekompiler , Anda dapat mengubah program kembali menjadi kode sumber parsial, dengan asumsi Anda tahu apa yang tertulis di dalamnya (yang dapat Anda temukan dengan alat gratis seperti PEiD - jika program ini dikemas, Anda harus membukanya terlebih dahulu ATAU Deteksi-itu-Mudah jika Anda tidak dapat menemukan PEiD di mana pun. DIE memiliki komunitas pengembang yang kuat di github saat ini).
Debuggers:
Disassembler:
Pengurai:
Beberapa alat terkait yang mungkin berguna dalam apa pun yang Anda lakukan adalah editor sumber daya seperti ResourceHacker (gratis) dan editor hex yang baik seperti Hex Workshop (komersial).
Selain itu, jika Anda melakukan analisis malware (atau menggunakan SICE) , saya dengan sepenuh hati menyarankan menjalankan segala sesuatu di dalam mesin virtual, yaitu VMware Workstation . Dalam kasus SICE, itu akan melindungi sistem Anda yang sebenarnya dari BSODs, dan dalam kasus malware, itu akan melindungi sistem Anda yang sebenarnya dari program target. Anda dapat membaca tentang analisis malware dengan VMware di sini .
Secara pribadi, saya roll dengan Olly, WinDbg & W32Dasm, dan beberapa alat utilitas yang lebih kecil.
Juga, ingat bahwa membongkar atau bahkan men - debug perangkat lunak orang lain biasanya terhadap EULA paling tidak :)
sumber
posting psoul yang luar biasa menjawab pertanyaan Anda sehingga saya tidak akan meniru pekerjaan baiknya, tetapi saya merasa itu akan membantu untuk menjelaskan mengapa ini sekaligus merupakan pertanyaan yang benar-benar valid tetapi juga sangat konyol. Bagaimanapun, ini adalah tempat untuk belajar, bukan?
Program komputer modern diproduksi melalui serangkaian konversi, dimulai dengan input dari badan teks yang dapat dibaca manusia (disebut "kode sumber") dan diakhiri dengan tubuh instruksi yang dapat dibaca komputer (disebut sebagai alternatif "biner" atau "mesin" kode").
Cara komputer menjalankan seperangkat instruksi kode mesin pada akhirnya sangat sederhana. Setiap tindakan yang dapat dilakukan prosesor (mis., Membaca dari memori, menambahkan dua nilai) diwakili oleh kode numerik. Jika saya katakan kepada Anda bahwa angka 1 berarti berteriak dan angka 2 berarti cekikikan, dan kemudian mengangkat kartu dengan 1 atau 2 pada mereka mengharapkan Anda untuk berteriak atau terkikik sesuai, saya akan menggunakan apa yang pada dasarnya adalah sistem yang sama yang digunakan komputer mengoperasikan.
File biner hanyalah seperangkat kode-kode itu (biasanya memanggil "kode op") dan informasi ("argumen") yang digunakan oleh kode op.
Sekarang, bahasa assembly adalah bahasa komputer di mana setiap kata perintah dalam bahasa tersebut mewakili tepat satu op-code pada prosesor. Ada terjemahan 1: 1 langsung antara perintah bahasa assembly dan kode-prosesor. Inilah mengapa perakitan kode untuk prosesor x386 berbeda dari perakitan kode untuk prosesor ARM.
Pembongkaran hanyalah ini: sebuah program membaca biner (kode mesin), mengganti op-kode dengan perintah bahasa assembly yang setara, dan menampilkan hasilnya sebagai file teks. Penting untuk memahami ini; jika komputer Anda dapat membaca biner, maka Anda dapat membaca biner juga, baik secara manual dengan tabel kode-op di tangan Anda (ick) atau melalui disassembler.
Disassembler memiliki beberapa trik baru dan semuanya, tetapi penting untuk dipahami bahwa disassembler pada akhirnya adalah mekanisme pencarian dan penggantian. Itulah sebabnya setiap EULA yang melarangnya pada akhirnya menghembuskan udara panas. Anda tidak dapat sekaligus mengizinkan komputer membaca data program dan juga melarang komputer membaca data program.
(Jangan salah paham, ada upaya untuk melakukannya. Mereka berfungsi sebaik DRM pada file lagu.)
Namun, ada peringatan untuk pendekatan pembongkaran. Nama variabel tidak ada; hal seperti itu tidak ada pada CPU Anda. Panggilan perpustakaan membingungkan sekali dan seringkali membutuhkan pembongkaran binari lebih lanjut. Dan kebaktian sulit sekali dibaca dalam kondisi terbaik.
Kebanyakan programmer profesional tidak bisa duduk dan membaca bahasa rakitan tanpa sakit kepala. Bagi seorang amatir, itu tidak akan terjadi.
Bagaimanapun, ini adalah penjelasan yang agak terlalu jelas, tapi saya harap ini membantu. Setiap orang dapat merasa bebas untuk memperbaiki salah saji di pihak saya; sudah lama. ;)
sumber
Kabar baik. IDA Pro sebenarnya gratis untuk versi yang lebih lama sekarang: http://www.hex-rays.com/idapro/idadownfreeware.htm
sumber
Setiap debugger yang layak dapat melakukan ini. Coba OllyDbg . (sunting: yang memiliki disassembler hebat yang bahkan menerjemahkan kode untuk panggilan WinAPI!)
sumber
x64dbg
adalah debugger sumber yang baik dan terbuka yang dikelola secara aktif.sumber
Tentu, lihat IDA Pro . Mereka menawarkan versi eval sehingga Anda dapat mencobanya.
sumber
Jika Anda hanya mencoba mencari tahu apa yang dilakukan malware, mungkin akan lebih mudah untuk menjalankannya di bawah sesuatu seperti alat Monitor Proses gratis yang akan melaporkan setiap kali mencoba mengakses sistem file, registri, port, dll ...
Juga, menggunakan mesin virtual seperti server VMWare gratis sangat membantu untuk pekerjaan semacam ini. Anda dapat membuat gambar "bersih", dan kemudian kembali ke situ setiap kali Anda menjalankan malware.
sumber
Anda mungkin mendapatkan beberapa informasi yang melihatnya secara bersamaan, tetapi saya pikir hal yang paling mudah untuk dilakukan adalah menyalakan mesin virtual dan melihat apa yang dilakukannya. Pastikan Anda tidak memiliki saham terbuka atau hal seperti itu yang dapat dilompati;)
sumber
Boomerang juga layak untuk dicoba.
sumber
Yang Anda inginkan adalah jenis perangkat lunak yang disebut "Disassembler".
Google cepat menghasilkan ini: Tautan
sumber
Aku tidak percaya tidak ada yang mengatakan apa-apa tentang Imunitas Debugger .
Immunity Debugger adalah alat yang ampuh untuk menulis eksploit, menganalisis malware, dan membalikkan file biner. Awalnya didasarkan pada kode sumber Ollydbg 1.0, tetapi dengan bug perbaikan nama yang diperbaiki. Ini memiliki API Python yang didukung dengan baik untuk ekstensibilitas yang mudah, sehingga Anda dapat menulis skrip python untuk membantu Anda dalam analisis.
Juga, ada Peter yang baik dari tim Corelan menulis disebut mona.py , alat yang sangat baik btw.
sumber
Jika Anda ingin menjalankan program untuk melihat apa yang dilakukannya tanpa menginfeksi komputer Anda, gunakan dengan mesin virtual seperti VMWare atau Microsoft VPC, atau program yang dapat mem -sandbox program seperti SandboxIE
sumber
Jika Anda tidak punya waktu, kirimkan malware ke cwsandbox:
http://www.cwsandbox.org/
http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/
HTH
sumber
Anda dapat menggunakan dotPeek, sangat bagus untuk mendekompilasi file exe. Ini gratis.
https://www.jetbrains.com/decompiler/
sumber
Saya akan mengatakan pada tahun 2019, Ghidra ( https://ghidra-sre.org/ ) layak untuk dicoba. Ini open source (dan gratis), dan memiliki kemampuan analisis kode fenomenal, termasuk kemampuan untuk mendekompilasi semua jalan kembali ke kode C yang cukup mudah dibaca.
sumber
Paket explorer dapat melakukan apa yang Anda inginkan.
sumber