x64(学习笔记) - 1(汇编)
要点
- 在x64中对32位的寄存器(比如eax,ebx)操作的时候(xor and mov 等)会影响64位的寄存器 。在x64中 mov eax,0x1 和 mov rax,0x1 俩个汇编的相等的 —零拓展
- x64寻址和x32寻址不一样 call offset =call goto address - rip
- x64中 没有pushad pushaq 有 pushfq(eflags); push cs, push ds 也没有了
- vs x64项目使用汇编配置:
- 右键项目 -> 生成依赖项 -> 生成自定义 -> 选中masm -> 确定
- 右键.asm 属性 -> 项类型选择 Microsoft Macro Assembler
- .asm文件
- “;”在.asm 中 是注释
- 在asm中 16进制不能使用0x12345678 需要使用 12345678h
- 注意函数名和汇编指令冲突
- 函数名要加上extern_c 用c的规则来生成函数
1 | .code ; 在代码段 |
其他
C++默认导出函数 会有返回值和参数的后缀
# 推荐文章
1.minifilter-学习笔记1
2.Android Killer 不反编译资源
3.xposed 原理初探
4.AndroidStudio调试smali代码
5.jeb调试smali代码
6.xposed 小实战
1.minifilter-学习笔记1
2.Android Killer 不反编译资源
3.xposed 原理初探
4.AndroidStudio调试smali代码
5.jeb调试smali代码
6.xposed 小实战