Apakah mungkin untuk "menguraikan" Windows .exe? Atau setidaknya melihat Perakitan?

Seorang teman saya mengunduh beberapa malware dari Facebook, dan I'm penasaran untuk melihat apa yang dilakukannya tanpa menginfeksi diri sendiri. Saya tahu bahwa anda dapat't benar-benar menguraikan an .exe, tapi setidaknya aku bisa melihat itu di Majelis atau melampirkan debugger?

Edit untuk mengatakan tidak .NET executable, tidak ada CLI header.

Mengomentari pertanyaan (2)
Larutan

Dengan debugger anda dapat melangkah melalui program perakitan secara interaktif.
Dengan disassembler, anda dapat melihat program perakitan secara lebih detail.
Dengan decompiler, anda dapat mengubah program kembali ke sebagian source code, dengan asumsi anda tahu apa itu tertulis dalam (yang dapat anda temukan dengan alat gratis seperti PEiD - jika program ini dikemas, anda'll harus membongkar terlebih dahulu ATAU Mendeteksi-itu-Mudah jika anda dapat't menemukan PEiD di mana saja. MATI memiliki komunitas pengembang yang kuat pada github saat ini).

Debugger:

  • OllyDbg, gratis, baik 32-bit debugger, yang anda dapat menemukan banyak user-dibuat plugin dan script untuk membuat semua lebih berguna.
  • WinDbg, gratis, cukup mampu debugger oleh Microsoft. WinDbg ini terutama berguna untuk melihat Windows internals, karena ia tahu lebih lanjut tentang struktur data dari debugger lain.
  • SoftICE, SICE untuk teman-teman. Komersial dan pengembangan dihentikan pada tahun 2006. SoftICE adalah jenis hardcore tool yang berjalan di bawah sistem operasi (dan menghentikan seluruh sistem ketika dipanggil). SoftICE masih digunakan oleh banyak profesional, meskipun mungkin sulit untuk mendapatkan dan mungkin tidak bekerja pada beberapa perangkat keras (atau perangkat lunak - yaitu, itu tidak akan bekerja pada Vista atau NVIDIA gfx kartu).

Pengurai:

  • IDA Pro(komersial) - top of the line disassembler/debugger. Digunakan oleh sebagian besar profesional, seperti analis malware dll. Biaya beberapa dolar meskipun (ada versi gratis, tapi itu cukup cukup terbatas)
  • W32Dasm(free) - sedikit tertanggal namun mendapatkan pekerjaan yang dilakukan. Saya percaya W32Dasm adalah abandonware hari ini, dan ada banyak yang dibuat pengguna hacks untuk menambahkan beberapa fungsi yang sangat berguna. Anda'll harus melihat sekitar untuk menemukan versi terbaik.

Decompilers:

  • Visual Basic: VB Decompiler, komersial, memproduksi agak diidentifikasi bytecode.
  • Delphi: DeDe, gratis, menghasilkan kualitas baik kode sumber.
  • C: HexRays, komersial, sebuah plugin untuk IDA Pro oleh perusahaan yang sama. Menghasilkan hasil yang bagus tapi biaya uang besar, dan tidak't akan dijual ke sembarang orang (atau jadi aku dengar).
  • .NET(C#): dotPeek, gratis, membongkar susunan .BERSIH 1.0-4.5 rakitan untuk C#. Dukungan untuk .dll, .exe, .zip, .vsix, .nupkg, dan .winmd file.

Beberapa alat-alat terkait yang mungkin datang berguna dalam apa pun yang anda're lakukan adalah sumber editor seperti ResourceHacker (gratis) dan hex editor seperti Hex Workshop (komersial).

Selain itu, jika anda melakukan analisis perangkat lunak perusak (atau menggunakan SICE), dengan segenap hati saya menyarankan untuk menjalankan segala sesuatu di dalam mesin virtual, yaitu VMware Workstation. Dalam kasus SICE, itu akan melindungi anda sebenarnya sistem dari BSODs, dan dalam kasus malware, itu akan melindungi anda sebenarnya sistem dari sasaran program. Anda dapat membaca tentang malware analisis dengan VMware di sini.

Secara pribadi, saya roll dengan Olly, WinDbg & W32Dasm, dan beberapa yang lebih kecil alat utilitas.

Juga, ingat bahwa pembongkaran atau bahkan debugging orang lain's software biasanya terhadap EULA di sangat paling tidak :)

Komentar (12)

psoul's sangat baik posting jawaban untuk pertanyaan anda, jadi saya tidak't meniru pekerjaan yang baik, tapi saya merasa itu'd membantu untuk menjelaskan mengapa hal ini sekaligus sah tapi juga sangat pertanyaan konyol. Setelah semua, ini adalah tempat untuk belajar, kan?

Program komputer Modern yang diproduksi melalui serangkaian konversi, dimulai dengan input yang dapat dibaca manusia tubuh dari teks instruksi (disebut "source code") dan berakhir dengan sebuah komputer yang dapat dibaca oleh tubuh dari petunjuk (atau disebut "biner" atau "kode mesin").

Cara agar komputer berjalan satu set mesin kode petunjuk pada akhirnya sangat sederhana. Setiap tindakan prosesor dapat mengambil (misalnya, membaca dari memori, tambahkan dua nilai) diwakili dengan kode angka. Jika saya mengatakan kepada anda bahwa nomor 1 berarti berteriak dan nomor 2 berarti tertawa, dan kemudian mengangkat kartu dengan 1 atau 2 pada mereka mengharapkan anda untuk berteriak atau tertawa dengan demikian, saya akan menggunakan apa yang pada dasarnya sama dengan sistem yang menggunakan komputer untuk beroperasi.

File biner adalah salah satu set kode-kode (biasanya menyebutnya "op kode") dan informasi ("argumen-argumen") yang op kode bertindak.

Sekarang, bahasa assembly adalah bahasa komputer dimana setiap kata perintah dalam bahasa yang mewakili tepat satu op-code pada prosesor. Ada yang langsung 1:1 terjemahan antara bahasa assembly perintah dan prosesor op-code. Ini adalah mengapa coding perakitan untuk x386 prosesor yang berbeda dari coding assembly untuk prosesor ARM.

Pembongkaran hanya ini: program membaca melalui biner (kode mesin), mengganti op-kode dengan mereka yang setara dengan bahasa assembly perintah, dan output hasil sebagai file teks. It's penting untuk memahami hal ini; jika komputer anda dapat membaca biner, maka anda bisa membaca biner juga, baik secara manual dengan op-code tabel di tangan anda (ick) atau melalui disassembler.

Pengurai memiliki beberapa trik baru, tapi itu's penting untuk memahami bahwa disassembler pada akhirnya adalah sebuah pencarian dan mengganti mekanisme. Itulah sebabnya mengapa setiap EULA yang melarang hal ini pada akhirnya meniup udara panas. Anda dapat't sekaligus memungkinkan komputer membaca data program dan juga melarang komputer membaca data program.

(Don't get me wrong, telah ada upaya untuk melakukannya. Mereka bekerja serta DRM pada file lagu.)

Namun, ada peringatan untuk pembongkaran pendekatan. Nama-nama variabel yang tidak ada; hal seperti itu doesn't ada untuk CPU anda. Perpustakaan panggilan yang membingungkan seperti neraka dan sering memerlukan pembongkaran lebih lanjut binari. Dan perakitan sulit sekali untuk dibaca dalam kondisi terbaik.

Kebanyakan programmer profesional dapat't duduk dan membaca bahasa assembly tanpa sakit kepala. Untuk amatir it's tidak akan terjadi.

Anyway, ini adalah agak dipoles-atas penjelasannya, tapi saya harap ini membantu. Semua orang dapat merasa bebas untuk mengoreksi salah saji pada bagian saya; itu's been a while. ;)

Komentar (2)

Kabar baik. IDA Pro adalah benar-benar gratis untuk versi yang lebih tua sekarang: http://www.hex-rays.com/idapro/idadownfreeware.htm

Komentar (0)

Apapun yang layak debugger dapat melakukan hal ini. Mencoba OllyDbg. (edit: yang memiliki disassembler yang bahkan menerjemahkan parameter untuk WinAPI panggilan!)

Komentar (0)

x64dbg adalah seorang yang baik dan open source debugger yang aktif dipertahankan.

Komentar (0)

Yakin, melihat-lihat di IDA Pro. Mereka menawarkan eval versi sehingga anda dapat mencobanya.

Komentar (0)

Jika anda hanya mencoba untuk mencari tahu apa yang malware tidak, itu mungkin akan jauh lebih mudah untuk menjalankannya di bawah sesuatu seperti gratis alat Proses Monitor yang akan melaporkan setiap kali ia mencoba untuk mengakses file sistem, registry, pelabuhan, dll...

Juga, dengan menggunakan mesin virtual seperti gratis VMWare server ini sangat bermanfaat untuk pekerjaan semacam ini. Anda dapat membuat "bersih" gambar, dan kemudian hanya pergi kembali ke bahwa setiap kali anda menjalankan malware.

Komentar (0)

Apa yang anda inginkan adalah sebuah jenis perangkat lunak yang disebut "Disassembler".

Google cepat panen ini: http://www.geocities.com/~sangcho/disasm.html

Komentar (2)

Anda mungkin mendapatkan beberapa informasi yang melihat hal itu di majelis, tapi saya pikir hal yang termudah untuk dilakukan adalah menjalankan mesin virtual dan melihat apa yang dilakukannya. Pastikan anda tidak membuka saham atau sesuatu seperti itu bahwa itu dapat melompat melalui sekalipun ;)

Komentar (2)

Boomerang dapat juga menjadi senilai check-out.

Komentar (1)

Saya dapat't percaya tidak ada yang mengatakan apa-apa tentang Immunity Debugger, namun.

Immunity Debugger adalah alat yang ampuh untuk menulis eksploitasi, menganalisis malware, dan reverse engineering file biner. Awalnya berbasis di Ollydbg 1.0 source code, tapi dengan nama resoution bug tetap. Ini telah didukung Python API untuk memudahkan diperpanjang, sehingga anda dapat menulis skrip python untuk membantu anda keluar pada analisis.

Juga, ada's merupakan salah satu yang baik Peter dari Corelan tulis tim yang disebut mona.py, excelent alat btw.

Komentar (0)

Jika anda tidak punya waktu, mengirimkan malware ke cwsandbox:

http://www.cwsandbox.org/

http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/

HTH

Komentar (0)

Jika anda ingin menjalankan program untuk melihat apa yang dilakukannya tanpa menginfeksi komputer anda, dengan menggunakan mesin virtual seperti VMWare atau Microsoft VPC, atau sebuah program yang dapat sandbox program seperti SandboxIE

Komentar (0)

Anda dapat menggunakan dotPeek, sangat baik untuk menguraikan file exe. Ini adalah gratis.

https://www.jetbrains.com/decompiler/

Komentar (1)

I'd mengatakan di 2019, Ghidra (https://ghidra-sre.org/) adalah senilai check-out. It's open source (gratis), dan telah fenomenal kode analisis kemampuan, termasuk kemampuan untuk menguraikan semua jalan kembali ke cukup mudah dibaca C code.

Komentar (0)

The explorer suite dapat melakukan apa yang anda inginkan.

Komentar (0)