当前位置:网站首页>【无标题】
【无标题】
2022-08-02 03:25:00 【CHIAJ176】
.text:0000000000401550 ; =============== S U B R O U T I N E =======================================
.text:0000000000401550
.text:0000000000401550 ; Attributes: bp-based frame
.text:0000000000401550
.text:0000000000401550 ; int __cdecl main(int argc, const char **argv, const char **envp)
.text:0000000000401550 public main
.text:0000000000401550 main proc near ; CODE XREF: __tmainCRTStartup+242↑p
.text:0000000000401550 ; DATA XREF: .pdata:000000000040506C↓o
.text:0000000000401550
.text:0000000000401550 var_8 = dword ptr -8
.text:0000000000401550 var_4 = dword ptr -4
.text:0000000000401550
.text:0000000000401550 push rbp
.text:0000000000401551 mov rbp, rsp
.text:0000000000401554 sub rsp, 30h
.text:0000000000401558 call __main
.text:000000000040155D mov [rbp+var_8], 0
.text:0000000000401564 mov [rbp+var_4], 1
.text:000000000040156B jmp short loc_401577
.text:000000000040156D ; ---------------------------------------------------------------------------
.text:000000000040156D
.text:000000000040156D loc_40156D: ; CODE XREF: main+2B↓j
.text:000000000040156D mov eax, [rbp+var_4]
.text:0000000000401570 add [rbp+var_8], eax
.text:0000000000401573 add [rbp+var_4], 1
.text:0000000000401577
.text:0000000000401577 loc_401577: ; CODE XREF: main+1B↑j
.text:0000000000401577 cmp [rbp+var_4], 64h ; 'd'
.text:000000000040157B jle short loc_40156D
.text:000000000040157D mov eax, [rbp+var_8]
.text:0000000000401580 mov edx, eax
.text:0000000000401582 lea rcx, Format ; "a=%d\n"
.text:0000000000401589 call printf
.text:000000000040158E mov eax, 0
.text:0000000000401593 add rsp, 30h
.text:0000000000401597 pop rbp
.text:0000000000401598 retn
.text:0000000000401598 main endp
.text:0000000000401598
.text:0000000000401598 ; ---------------------------------------------------------------------------
var_8= dword ptr -8
var_4= dword ptr -4
这部分是.data的数据段部分:
1、
- var_8、var_4符号名称,相当于变量。
- “=”:等号伪指令(equal-sign directive)把一个符号名称与一个整数表达式连接起来
2、dword 是标准汇编数据类型,代表着双字的意思。
3、ptr 运算符可以用来重写一个已经被声明过的操作数的大小类型。ptr 必须与一个标准汇编数据类型一起使用。只要试图用不同于汇编器设定的大小属性来访问操作数,那么这个运算符就是必需的。
4、-8、-4 这些是整数常量
.data myDouble DWORD 12345678h
.code mov ax,myDouble
push rbp
mov rbp, rsp
sub rsp, 30h
call __main
mov [rbp+var_8], 0
mov [rbp+var_4], 1
jmp short loc_401577
这一段是代码块部分:
汇编指令:
- push
push(压栈) 指令首先减少 ESP 的值,再将源操作数复制到堆栈。 - mov
mov 指令将源操作数复制到目的操作数。 - sub
sub 指令从目的操作数中减去源操作数。sub dest, source
- call
call 指令调用一个过程,指挥处理器从新的内存地址开始执行。过程使用 RET(从过程返回)指令将处理器转回到该过程被调用的程序点上。 - jmp
jmp 指令无条件跳转到目标地址
栈寄存器:
- rsp
ESP是堆栈指针寄存器。运行时堆栈是内存数组,CPU 用 ESP(扩展堆栈指针,extended stack pointer)寄存器对其进行直接管理,该寄存器被称为堆栈指针寄存器(stack pointer register)。
- rbp
EBP是基址指针寄存器
边栏推荐
- WeChat applet development video loading: [Rendering layer network layer error] Failed to load media
- CTF-网鼎杯往届题目
- CTF入门笔记之ping
- hackmyvm: kitty walkthrough
- ES6 three-dot operator, array method, string extension method
- (6) Design of student information management system
- (2) 顺序结构、对象的布尔值、选择结构、循环结构、列表、字典、元组、集合
- 一个网络安全小白鼠的学习之路——nmap的基本使用
- CTF entry md5
- [symfony/finder]最好用的文件操作库
猜你喜欢
ES6 iterator explanation example
TypeScript error error TS2469, error TS2731 solution
hackmyvm: controller walkthrough
DarkHole: 2 vulnhub walkthrough
(5) Modules and packages, encoding formats, file operations, directory operations
13.JS输出内容和语法
(7) 浅学 “爬虫” 过程 (概念+练习)
xxe of CTF
动力:2 vulnhub预排
Several interesting ways to open PHP: from basic to perverted
随机推荐
(2) Thinkphp6 template engine ** tag
hackmyvm: controller walkthrough
Alfa: 1 vulnhub walkthrough
[symfony/finder] The best file manipulation library
13.JS输出内容和语法
2. PHP variables, output, EOF, conditional statements
1. Beginning with PHP
(8) requests、os、sys、re、_thread
PHP Foundation March Press Announcement Released
Offensive and defensive world - novice MISC area 1-12
hackmyvm-random walkthrough
12.什么是JS
What will be new in PHP8.2?
(2) Sequence structures, Boolean values of objects, selection structures, loop structures, lists, dictionaries, tuples, sets
The roll call system and array elements find maximum and minimum values for sorting of objects
Praying: 1 vulnhub walkthrough
Solve the problem of Zlibrary stuck/can't find the domain name/reached the limit, the latest address of Zlibrary
[league/climate] A robust command-line function manipulation library
OPENSSL基本实验以及OPENSSL详解
hackmyvm: again walkthrough