Logo CyberJutsu
Về chúng tôi
Học thử

Tổng hợp công cụ debug Assembly online

Technical Writer
Binary Exploitation

Giới thiệu

Assembly là ngôn ngữ lập trình bậc thấp giúp hiểu rõ cơ chế máy tính: thanh ghi, bộ nhớ, ngăn xếp, và luồng điều khiển. Việc lập trình Assembly cần các công cụ debugger giúp quan sát từng câu lệnh và kiểm tra thanh ghi dễ dàng. Các trang web debugger assembly không chỉ cho viết và thực thi, mà còn có giao diện trực quan, gợi ý cú pháp để nâng cao hứng thú học.

Asm Editor

Link: asm-editor.specy.app

Phù hợp: Những người có hiểu biết cơ bản về Assembly, đặc biệt phù hợp cho lớp học cần môi trường thực hành nhanh trên trình duyệt.

Kiến trúc hỗ trợ: M68K, MIPS, RISC-V, x64.

Tính năng:

  • IDE tương tác với cho phép edit trực tiếp code Assembly
  • Emulator để build và thực thi code Assembly
  • Debugger hiển thị đầy đủ thông tin cần thiết như stack, memory, register, eflags,…
  • Có cơ chế code completion và một vài chức năng hữu ích khác như documentation, auto save,…
  • Có chức năng AI Chat hỗ trợ hỏi đáp

Ưu điểm:

  • Hỗ trợ đa kiến trúc phổ biến (M68K, RISC-V, MIPS, x86)
  • Debugger thân thiện, dễ dùng, dễ hình dung luồng thực thi
  • Có hỗ trợ giao bài tập cho học viên, tổ chức exam
  • Có tài liệu hỗ trợ, thuận lợi cho việc tự học.
  • Chạy được ở phiên bản web và app

Khuyết điểm:

  • Chỉ đơn thuần là Emulator để phục vụ cho việc học hiểu Assembly
  • Không chạy được syscall
  • x86/64 đang trong giai đoạn phát triển, còn nhiều bug

x86-64 Playground

Link: x64.halb.it

Phù hợp: Người có hiểu biết cơ bản về Assembly, cần môi trường debug nhanh, tiện lợi trên Intel x64

Kiến trúc hỗ trợ: x86-64

Tính năng:

  • IDE cho phép edit, compile, thực thi và share code Assembly.
  • Hỗ trợ nhiều assembler phổ biến như GNU As, Fasm, Nasm.
  • Debug từng bước với giao diện giống GDB.
  • Cho phép xem memory và register của process khi đang chạy.
  • Có thể tải file từ máy tính để chạy và debug trong sandbox.

Ưu điểm:

  • Rất phù hợp để học và dạy Assembly
  • Giao diện giống GDB dễ làm quen với debug môi trường thật
  • Có thể dùng để demo x64 nhanh, tiện lợi
  • Phù hợp cho các bài học về stack, function call, syscall, shellcode cơ bản.

Khuyết điểm:

  • Emulator đơn thuần, không thể thay thế môi trường thật
  • Chỉ tập trung vào x86-64, không hỗ trợ MIPS, ARM, RISC-V.
  • Không có hệ thống bài tập, chấm điểm, quản lý lớp học.
  • Không thay thế hoàn toàn được GDB thật khi đi vào exploit nâng cao.

MARS MIPS Simulator

Link: computerscience.missouristate.edu/mars-mips-simulator.htm

Phù hợp: Người đang học Mips

Kiến trúc hỗ trợ: MIPS32.

Tính năng:

  • IDE viết và chạy MIPS Assembly.
  • Có editor, assembler, simulator.
  • Hiển thị register, memory, data segment, text segment.
  • Thay đổi giá trị của register, memory, hỗ trợ hiển thị dạng hex hoặc decimal
  • Có command-line mode, hữu ích khi muốn test nhiều chương trình.

Ưu điểm:

  • Rất phù hợp để dạy MIPS.
  • Giao diện rõ ràng, dễ quan sát register và memory.
  • Tiện lợi trong việc debug, dễ dàng thay đổi giá trị để tối ưu debug
  • Có tính giáo dục cao, được thiết kế cho mục đích học tập.
  • Có thể dùng command-line mode để hỗ trợ cho test chương trình.

Khuyết điểm:

  • Setup hơi phức tạp, cần cài đặt Java
  • Giao diện khá cũ.
  • Chỉ hỗ trợ MIPS, không dùng cho x86, ARM, RISC-V.
  • Phải cài đặt ứng dụng, không hỗ trợ chạy trên trình duyệt
  • Không phù hợp với bài học syscall Linux thật hoặc binary exploitation.

Microcorruption

Link: microcorruption.com

Phù hợp: Người học Assembly trong các thiết bị nhúng, lập trình vi điều khiển MSP430

Kiến trúc hỗ trợ: RISC 16bit

Tính năng:

  • Wargame/CTF về bảo mật thiết bị nhúng.
  • Có debugger trên trình duyệt.
  • Giao diện hiển thị đầy đủ disassembly, register, memory.
  • Có nhiều level tăng dần độ khó.
  • Chạy trực tiếp trên web.

Ưu điểm:

  • Học assembly kết hợp với security
  • Có documents, tutorial chi tiết giúp học dễ dàng hơn.
  • Giúp luyện đọc disassembly, phân tích control flow, hiểu register/memory.
  • Phù hợp cho lớp reverse engineering, embedded security, CTF.
  • Không cần setup môi trường phức tạp.

Khuyết điểm:

  • Không phù hợp cho người mới học Assembly.
  • Cần nền tảng về debug, memory, instruction, binary.
  • Chỉ hỗ trợ RISC 16 bit cho vi điều khiển MSP430

Compiler Explorer

Link: godbolt.org

Phù hợp: Người có hiểu biết cơ bản về Assembly, cần môi trường debug nhanh, có thể debug đa dạng trên nhiều kiến trúc khác nhau.

Kiến trúc hỗ trợ: Intel, ARM, RISC-V đã dạng các phiên bản compiler

Tính năng:

  • Viết C/C++/Rust/Go… và xem Assembly output.
  • Có thể execute code trong một số cấu hình.
  • Có nhiều compiler, nhiều version, nhiều optimization level.
  • Có CFG, LLVM IR, AST, compiler output, runtime tools.

Ưu điểm:

  • Rất tốt để hiểu mối liên hệ giữa source code và Assembly.
  • Phù hợp khi dạy calling convention, optimization, inline asm, ABI.
  • So sánh O0, O1, O2, O3 rất trực quan.

Khuyết điểm:

  • Không phải debugger Assembly truyền thống.
  • Không tập trung vào register/stack live khi step instruction.
  • Nên dùng kèm GDB/x64dbg/LLDB.

Binary Ninja Cloud

Link: cloud.binary.ninja

Phù hợp: Người học reverse engineering muốn xem disassembly/graph online.

Nền tảng: Web browser.

Kiến trúc hỗ trợ: Hỗ trợ đa kiến trúc với các loại file PE/Mach-O/ELF.

Tính năng:

  • Reverse engineering trên web.
  • Xem graph, nhiều lớp IL.
  • Có thể share link tới vị trí code.
  • Có thể embed interactive graph.

Ưu điểm:

  • Dùng nhanh, không cần cài tool native.
  • Giao diện đẹp, phù hợp để đọc disassembly và control flow.
  • Tốt cho lớp reverse engineering nhập môn.

Khuyết điểm:

  • Phải upload binary lên cloud.
  • Không mạnh bằng bản native.
  • Không có API/plugin trên bản cloud/free.
  • Không phù hợp với binary nhạy cảm hoặc bài lab cần local-only.

Kết luận

Dù chọn công cụ nào, các web IDE, simulator hay nền tảng gamified chỉ nên xem như môi trường luyện tập và minh hoạ; để học và là chủ Assembly một cách chắc chắn, vẫn cần thực hành trên môi trường thật để nắm syscall, ABI, layout bộ nhớ và các hành vi phụ thuộc hệ thống.