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-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享
- 2024-12-24uniapp 连接之后会被立马断开是什么原因?-icode9专业技术文章分享
- 2024-12-24cdn 路径可以指定规则映射吗?-icode9专业技术文章分享
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享