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-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding