汇编学习(1)
环境:Windows 11,WSL2(Ubuntu),MINGW-GCC,NASM
一早上起来发现系统自动更新Win11了,用起来还算不错。
NASM,MINGW32-w64都是在WSL 2上的,点击这里看 MINGW32-w64在WSL 2上的安装方法。(Windows变成Linux发行版指日可待= =)
NASM与MINGW GCC
test.asm
1 | global do_something |
使用NASM生成OBJ文件:
1 | $ nasm -f win64 -o test.obj test.asm |
编写C文件
1 | #include <stdio.h> |
使用MINGW32-w64-gcc链接,生成可执行文件:
1 | $ w64gcc test.c test.obj -o test.exe |
用IDA Pro分析test.exe
1 | ; Attributes: bp-based frame |
IDA Pro中的do_something函数:
1 | ; Attributes: bp-based frame |
很明显,这里do_something函数是fastcall。函数的调用规则不知道怎么修改,谷歌、SO查了好多也不行= =,等我再去看看吧。
这算是认真研究汇编的一个开始吧,且行且珍惜。