首先请出我们今天的主角
账号已经固定了,输入密码点击登录就可以啦!
我们随便输入一串,然后点击下登录看看,他的提示框咯
输入“密码”,然后搜索咯
可以看到我们找出来啦
我们右键下一个内存访问断点,看看是哪里访问了这个内存
运行随便输入密码后,可以看见断下了!
在这个函数的末尾我们看见eax的值为FFFFFFFF,也就是-1
我们返回上一层看看外面是什么模样的
可以看见这个jnz唯一的作用就是,ebx的值是否覆盖掉eax的值,然后将eax压入了另一个函数,我们再次执行到返回
在返回时,我们再次注意下eax的值
这是个地址,我们看看这个地址中的数据
是密码错误哦!=-=
看到这里我们再次返回上一层
可以看见,这层返回的依然是密码错误啦,感觉像是在算什么一样对吧
先是获取了下密码错误然后计算了什么东西。
在这里我们还是返回一层看看啦
标注下,这是算数用的
这里像是关键的函数,我们直接就步过往下走
走到下面不远处,发现走不动了,原来是弹出了错误提示!
我们回到一开始读取的地方,也就是算数call里边
我们其实看见下面有个call直接跳过了返回,而不跳过的话,其实eax返回是0而不是-1的,我们不让他实现看看。
看eax现在是0啦,我们返回上一层看看
下面的jnz实现了,eax还是0
我们再返回一层
eax依然保持原值
返回之后依然是0,我们再次返回
可以看见在下面这个call中我们的密码被算了出来。
我们试试这个密码
成功!结束
来源:freebuf.com 2021-04-28 11:48:31 by: SamSara茶
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册