加密与解密 列题 TraceMe

首先先打开程序
在这里插入图片描述

一个很简单的逻辑,比较用户名和序列号是否符合,
在这个过程中,

  1. 输入
  2. 校验
  3. 返回值

这里出现了知识点
在这里插入图片描述

一个个试验,ctrl+G,出现输入框, 输入GetDlgItemTextA
在这里插入图片描述

确定
在这里插入图片描述

简单的来说,程序从这里开始输入,
汇编代码
在这里插入图片描述

MOV指令可以在CPU内或CPU和存储器之间传送字或字节
PUSH :把值推入栈值,相当于赋值
Call :循环指令,前面是赋值(应该是用户名和序列号),猜这就是循环验证了

下面可能就是结果了,按f8一个个运行查看提示

在这里插入图片描述

我继续向后运行,就发现了上面这个,随便输入用户名密码,按下f2,设置断点,记录下当前位置
在这里插入图片描述

Ctr+f2重来
在这里插入图片描述

找到了用户名

那么按照上面的推论,就是
输入+验证+返回值

又向下运行了几行
出现了
在这里插入图片描述

那么可以确定,上面推论是对的,幸亏提前设置了断点,重来

在这里插入图片描述

现在在call之前,右边是1

在这里插入图片描述

经过了test,变成了0
双击数字可以改变,
之前的实验我们已经知道,0是失败,1是成功
双击
在这里插入图片描述

最后还是提示错误,可能改错了,重来

在这里插入图片描述
这里改下,改成0,不跳转就是成功
在这里插入图片描述

方法二
已经知道在004011f5出跳转不成功就会成功
在此处,双击或按空格键,输入指令nop
在这里插入图片描述

单机右键,复制到可执行文件->选择->保存文件,再打开就可以随便输入了
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值