Lập trình Assembly trên Nasm part 1

Thảo luận trong 'Exploitation' bắt đầu bởi khanhhoangbkdn, 01/06/17, 10:06 AM.

  1. khanhhoangbkdn

    khanhhoangbkdn VIP Members

    Tham gia: 07/10/16, 10:10 AM
    Bài viết: 67
    Đã được thích: 35
    Điểm thành tích:
    18
    Các bạn tham khảo tài liệu asm tại link :
    https://whitehat.vn/threads/tong-hop-tai-lieu-hoc-assembly-tren-nasm.8566/

    Cấu trúc của một chương trình asm:
    Mã:
    segment .data                                  ;;chứa dữ liệu khai báo 
    segment .bss                                    ;;chứa dữ liệu input và các biến sử dụng trong chương trình 
    segment .code                                  ;;vùng mã lệnh 
        global main
        main:
          push ebp                                 ;tương đương int main(){
          mov ebp,esp
          
          ;......phần code Assembly                                        
                                                                                     
    
          leave                                      ;bằng  mov esp,ebp >> pop ebp
          ret                                          ;tương đương return 0; 
        
    
    Để biên dịch trên linux 64 bit :
    Để biên dịch trên linux 32 bit :
    Ví dụ về chương trình asm đơn giản các bạn có thể tham khảo :
    Mã:
    segment .data
        operchar db '+',0
        msg db "Math %d %c %d = %d",10,0
    segment .code
    
    extern printf
    global main
    
    main:
        push ebp
        mov ebp,esp
    
        sub esp,4
        mov eax,8
        mov edx,4
        push eax
        add eax,edx
        mov ecx,eax
        pop eax
        push ecx
        push edx
        push dword [operchar]
        push eax
        push msg
        call printf
        add esp,20
        leave
        ret
    
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    NgMSon thích bài này.
  2. tranchinguyen

    tranchinguyen New Member

    Tham gia: 04/11/20, 03:11 PM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Viết chương trình cho phép in chuỗi ký tự: "Hello NASM"
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan