汇编语言与逆向工程实验报告 3

PixPin_2024-03-11_21-12-59

PixPin_2024-03-11_21-13-56

PixPin_2024-03-11_21-11-05

汇编指令 解释
push rbp 将 rbp 寄存器的值压入栈中
mov rbp, rsp 将 rsp 寄存器的值复制到 rbp 寄存器中
mov DWORD PTR [rbp-0x14], edi 将 edi 寄存器的值移动到相对于 rbp 的地址偏移 -0x14 的内存位置
mov DWORD PTR [rbp-0x18], esi 将 esi 寄存器的值移动到相对于 rbp 的地址偏移 -0x18 的内存位置
mov eax, DWORD PTR [rbp-0x14] 将相对于 rbp 的地址偏移 -0x14 的内存位置的值复制到 eax 寄存器中
mov DWORD PTR [rbp-0x8], eax 将 eax 寄存器的值移动到相对于 rbp 的地址偏移 -0x8 的内存位置
mov DWORD PTR [rbp-0x4], 0x0 将值 0x0 移动到相对于 rbp 的地址偏移 -0x4 的内存位置
jmp 0x555555555150 <fun+39> 无条件跳转到地址 0x555555555150
mov eax, DWORD PTR [rbp-0x4] 将相对于 rbp 的地址偏移 -0x4 的内存位置的值复制到 eax 寄存器中
add DWORD PTR [rbp-0x8], eax 将 eax 寄存器的值与相对于 rbp 的地址偏移 -0x8 的内存位置的值相加,结果存储到 -0x8 的内存位置
add DWORD PTR [rbp-0x4], 0x1 将值 0x1 加到相对于 rbp 的地址偏移 -0x4 的内存位置的值上
mov eax, DWORD PTR [rbp-0x4] 将相对于 rbp 的地址偏移 -0x4 的内存位置的值复制到 eax 寄存器中
cmp eax, DWORD PTR [rbp-0x18] 比较 eax 寄存器的值与相对于 rbp 的地址偏移 -0x18 的内存位置的值
jl 0x555555555146 <fun+29> 如果前面的比较结果是小于,则跳转到地址 0x555555555146
mov eax, DWORD PTR [rbp-0x8] 将相对于 rbp 的地址偏移 -0x8 的内存位置的值复制到 eax 寄存器中
pop rbp 将栈中压入的 rbp 寄存器的值弹出