C++ 逆向笔记9 汇编基础

一 mov 和 lea

mov:

mov eax , [ 00401000]  ---[] 是取出里面的值

eax=[00401000]

mov :把后面的值赋给 eax

 

lea:去掉中括号,取出地址 (只是地址)

lea eax, [ 00401000] 

eax=00401000  

二 Push  Pop  Sub  Add

Push(改变堆栈,存放数据):

Push epb==> sub esp,4  + mov[esp],epb   (mov[esp],epb  把epb值放到esp这个地址里)

Pop(弹出数据):

Pop xxx ==>mov xxx,[esp] + add esp ,4  (mov xxx,[esp]  陈esp地址里的值给xxx)

Sub(减): Sub eax,1   ==>eax=eax-1 

Add(加): Add eax ,1  ===> eax=eax + 1 

 

三 Call和堆栈的关系

eip寄存器:指令指针寄存器,代码寄存器,保存着我们将要执行的代码

Call  xxx(地址):

push了Call这行代码的下一行代码。

push EIP + jmp(某个地址)

本来是在51FCBC这个位置, 如何去到67D6A0  jmp无条件跳转

 

Return :

 pop eip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值