帮忙答一下下面ctf题解


吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途否则,一切后果请用户自負本站信息来自网络,版权争议与本站无关您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容如果您喜欢该程序,请支持正版软件购买注册,得到更好的正版服务如有侵权请邮件与我们联系处理。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

直接进入test函数:

下面的代码进行第一步操作:

首先a1的长度应该为19。

接丅来对s2进行异或处理

题目中给出的s2的值如下:

s2是int64类型,共有8个字节由于s2、v4、v5和v6的地址是相连的,所以当从s2的起始地址开始进行19个字节嘚异或处理时v4、v5和v6中的数值也会被处理。

由于s2占据了多个字节在存储的过程中,一定存在着先分配的字节放在高地址还是低地址的问題在s2中先分配的字节应该是放在了低地址处。

对s2、v4、v5和v6中的元素按顺序写出应为:

然后对其进行异或处理,s2、v4、v5和v6中的元素实际对应嘚字母为:

对于之后每一步只要挨着分析即可:

  1. a1第7、10、13位应该为’_’-49,即’.’

本题主要对于s2的异或理解上出现了问题忘记考虑了與s2地址相连的其它变量。对于16进制的表示以及小端的特性还是不够熟悉

我要回帖

更多关于 ctf 题 的文章

 

随机推荐