CTF-二进制从入门到放弃(一)--汇编与概述
2021/8/1 17:38:47
本文主要是介绍CTF-二进制从入门到放弃(一)--汇编与概述,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.文件信息判别 工具:peid、exeinfope DIE 判断运行系统:win/linux 运行位数(32/64) 保护(Pack/ASLR/Nx……) checksec --file= 2.汇编 (1)寄存器X86 | x64 | 作用 | |
标准寄存器 | eax | rax | 返回值 |
ebx | ebx | 计次 | |
ecx | rcx | 计次 | |
edx | rdx | 计次 | |
edi | rdi | 字符串指针 | |
esi | rsi | 字符串指针 | |
ebp | rbp | 栈底指针 | |
esp | rsp | 栈顶指针 | |
eip | rip | opcode指针 | |
r8-r15 | 参数 | ||
eax>ax=[ah,al] | rax>eax>ax=[ah,al] |
调用约定 | 调用场合 | 入栈方式 | 栈平衡方式 | x86传参 | x64 |
__stdcall | win api | 参数从右向左依次入栈 | 被调用函数(内) | ———— | ------- |
__cdecl | c/c++默认 | 函数调用者(外) | 在栈上 | rdi,rsi.rdx,rcx,r8,r9对应前六,其余右往左压栈 | |
__fastcall | 高性能 | 从左开始将不大于4Byte的参数放入ecx,edx,其余从右往左入栈 | 被调用函数(内) | ———— | ———— |
__syscall | system | ------------- | -------- | eax为调用编号ebx,ecx,edx,esi,edi,ebp对应前六个参数,其余右往左压栈 | rax为调用编号,其他与__cdecl一致 |
arm程序 r0~r3对应前四个参数,其余右往左压栈 |
这篇关于CTF-二进制从入门到放弃(一)--汇编与概述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享