Tổng hợp tài liệu học assembly trên NASM

khanhhoangbkdn

VIP Members
07/10/2016
34
65 bài viết
Tổng hợp tài liệu học assembly trên NASM
Với những người bước đầu mới tìm hiểu đến Khai thác lỗ hổng phần mềm thì định hướng đầu tiên chắc chắn là phải biết và lập trình Assembly .
Mới bắt đầu mình nghĩ là các bạn nên lập trình assembly với NASM trên i386 vậy mình chia sẻ 1 số tài liệu mình đã xem qua và bạn nào có tài liệu về lập trình assembly trên NASM chia sẻ luôn để mọi người cùng học hỏi
  • Để hiểu các lệnh dùng trong Assembly bạn có search trên google hoặc đọc tài liệu của bác này "_[Kienmanowar]_" mình thấy khá đầy đủ (tài liệu về RE nhưng có giới thiệu về các lệnh trong Assembly đọc từ phần 2 đến 6 rảnh thì có thể dọc hết :D ).
  • Tài liệu về lập trình assembly trên NASM
  • Các tools biên dich và file thư viện để biên dịch các hàm
- Có thể vừa đọc vừa thực hành một số bài tập cơ bản như lập trình C
- Ví dụ cấu trúc chương trình của 1 bài assembly convert hệ Dec qua Bin và Hex.

Mã:
[INDENT]%include "WIN32N.INC"
extern gets
import gets msvcrt.dll
extern printf
import printf msvcrt.dll
extern scanf
import scanf msvcrt.dll
extern puts
import puts msvcrt.dll

segment .data USE32
    t db "0123456789ABCDEF",0
    formatin db "%d",0
    n times 4 dd 0
    msg1 db "Nhap vao so tu nhien N :", 0
    bin db "00000000000000000000000000000000" ,0
    msg2 db "convert bin is :",0
    hex db "00000000",0
    msg3 db "convert hex is :",0
segment .bss USE32

segment .code USE32
   
..start:
    push dword msg1
    call [printf]
    add esp,4

    push n
    push formatin
    call [scanf]
    add esp,8

    mov eax ,dword [n]
    mov ebx ,2
    mov cx ,32
    mov esi, 0
    lap_bin:
        xor edi,edi
        xor edx,edx
        div ebx            ;thuong luu tai eax du luu tai edx
        mov dl,[t+edx]
        mov edi,bin
        add edi,31
        sub edi,esi
        mov [edi],dl
        inc esi
        cmp eax,0
        je lap_hex
    loop lap_bin
    lap_hex:
        mov eax ,dword [n]
        mov ebx ,16
        mov cx ,8
        mov esi,0
        lap_hex2:
            xor edi,edi
            xor edx,edx
            div ebx
            mov dl,[t+edx]
            mov edi ,hex
            add edi,7
            sub edi,esi
            mov [edi],dl
            inc esi
            cmp eax ,0
            je printf_bin
        loop lap_hex2   
    printf_bin:
        push dword msg2
        call [printf]
        add esp,4
        push bin
        call [puts]
        add esp,4
        push dword msg3
        call [printf]
        add esp,4
        push hex
        call [puts]
        add esp,4
        jmp ..start   
[/INDENT]
Các bạn có thể trao đổi source bài tập trong box này nhé ,có gì cứ đưa lên để anh em còn giúp đỡ :D:D
 
Hay... Thanks for sharing
 
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
Comment
Sorry mình đã update lại link.
 
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
Comment
Cho em hỏi lập trình assembly trên NASM và còn trên gì nữa không ạ. Muốn RE và PWN thì học cái này phải không ạ. Ai giải đáp giúp em với, bởi vì thấy nhiều loại asembly quá, em không biết học như thế nào ??
 
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
Comment
Cho em hỏi lập trình assembly trên NASM và còn trên gì nữa không ạ. Muốn RE và PWN thì học cái này phải không ạ. Ai giải đáp giúp em với, bởi vì thấy nhiều loại asembly quá, em không biết học như thế nào ??
Lập trình Assembly trên linux chủ yếu dùng Nasm ngoài ra còn nhiều trình biên dịch hợp ngữ trên windown nữa như emu80***...
Tất nhiên học RE +PWN thì nhất định phải biết assembly
 
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
Comment
Với những người bước đầu mới tìm hiểu đến Khai thác lỗ hổng phần mềm thì định hướng đầu tiên chắc chắn là phải biết và lập trình Assembly .
Mới bắt đầu mình nghĩ là các bạn nên lập trình assembly với NASM trên i386 vậy mình chia sẻ 1 số tài liệu mình đã xem qua và bạn nào có tài liệu về lập trình assembly trên NASM chia sẻ luôn để mọi người cùng học hỏi
  • Để hiểu các lệnh dùng trong Assembly bạn có search trên google hoặc đọc tài liệu của bác này "_[Kienmanowar]_" mình thấy khá đầy đủ (tài liệu về RE nhưng có giới thiệu về các lệnh trong Assembly đọc từ phần 2 đến 6 rảnh thì có thể dọc hết :D ).
  • Tài liệu về lập trình assembly trên NASM
  • Các tools biên dich và file thư viện để biên dịch các hàm
- Có thể vừa đọc vừa thực hành một số bài tập cơ bản như lập trình C
- Ví dụ cấu trúc chương trình của 1 bài assembly convert hệ Dec qua Bin và Hex.

Mã:
[INDENT]%include "WIN32N.INC"
extern gets
import gets msvcrt.dll
extern printf
import printf msvcrt.dll
extern scanf
import scanf msvcrt.dll
extern puts
import puts msvcrt.dll

segment .data USE32
    t db "0123456789ABCDEF",0
    formatin db "%d",0
    n times 4 dd 0
    msg1 db "Nhap vao so tu nhien N :", 0
    bin db "00000000000000000000000000000000" ,0
    msg2 db "convert bin is :",0
    hex db "00000000",0
    msg3 db "convert hex is :",0
segment .bss USE32

segment .code USE32
   
..start:
    push dword msg1
    call [printf]
    add esp,4

    push n
    push formatin
    call [scanf]
    add esp,8

    mov eax ,dword [n]
    mov ebx ,2
    mov cx ,32
    mov esi, 0
    lap_bin:
        xor edi,edi
        xor edx,edx
        div ebx            ;thuong luu tai eax du luu tai edx
        mov dl,[t+edx]
        mov edi,bin
        add edi,31
        sub edi,esi
        mov [edi],dl
        inc esi
        cmp eax,0
        je lap_hex
    loop lap_bin
    lap_hex:
        mov eax ,dword [n]
        mov ebx ,16
        mov cx ,8
        mov esi,0
        lap_hex2:
            xor edi,edi
            xor edx,edx
            div ebx
            mov dl,[t+edx]
            mov edi ,hex
            add edi,7
            sub edi,esi
            mov [edi],dl
            inc esi
            cmp eax ,0
            je printf_bin
        loop lap_hex2   
    printf_bin:
        push dword msg2
        call [printf]
        add esp,4
        push bin
        call [puts]
        add esp,4
        push dword msg3
        call [printf]
        add esp,4
        push hex
        call [puts]
        add esp,4
        jmp ..start   
[/INDENT]
Các bạn có thể trao đổi source bài tập trong box này nhé ,có gì cứ đưa lên để anh em còn giúp đỡ :D:D

Bác để trên gdriver nó ko cho tải file thứ 24, làm ơn fix lại giúp
 
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
Comment
tut15 và tut21 bị drive k cho tải, nó thông báo có virus, ai giúp mình với
 
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
Comment
tut15 và tut21 bị drive k cho tải, nó thông báo có virus, ai giúp mình với
Không phải có virus đâu bạn, gần đây Google Chrome sẽ tự động cảnh báo các file tải về có phần mở rộng là .exe, .zip... Bạn cứ tải về rồi bấm vào keep như hình dưới.

ddd.PNG
 
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
  • Thích
Reactions: Phan Nhật Vinh
Comment
Không phải có virus đâu bạn, gần đây Google Chrome sẽ tự động cảnh báo các file tải về có phần mở rộng là .exe, .zip... Bạn cứ tải về rồi bấm vào keep như hình dưới.

View attachment 6868
upload_2020-7-6_11-37-7.png

Khác lắm bạn không được luôn @@
mình thử trình IE
upload_2020-7-6_11-38-55.png
 
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
Comment
tut15 và tut21 bị drive k cho tải, nó thông báo có virus, ai giúp mình với

Truy cập link trên > đăng nhập gmail của bạn > click phải vào file cần tải > Make a copy > sau đó vào drive của bạn tải về.
upload_2020-7-6_17-31-40.png
 
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
  • Thích
Reactions: Phan Nhật Vinh
Comment
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
Comment
Thẻ
assembly nasm tài liệu học assembly
Bên trên