-
-
[原创] 第六题 寻回宝剑 writeup
-
发表于: 2021-5-19 15:33 6431
-
拖入IDA分析,可以看到大量结构类似的重复指令,调试可以看出这部分的作用是跳转到下一条指令。
可以使用idapython清除来接近程序原本的面目。
清除后动态调试分析,在以下可能的导入函数下段。
最开始会和1746(即36*49结果)比较,相等的话会提示错误。
然后取输入的长度,如果不等于84则也提示错误。
判断输入字符在0~9,A~Z,+-*/%=这42个字符内,索引为0~41。
输入的字符两两为一组,一共42组转换成数值表(第一位*42 + 第二位),后面的数字不能比前面的小,所以推断出格式应每组数第一位肯定是不能减小的。
然后会判断使用数值表的数依次与42取商取余(第一位索引即为商,第二位索引即为余)不重复,即可推断出第一位数字应该不相同的,递增的,为0_ 1_ 2_ ……/_%_=_,每组数的第二位也是不同的。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-5-19 15:37
被xwwei编辑
,原因:
赞赏
他的文章
- [原创]第二题 末日邀请 10462
- [分享] 第八题 众叛亲离 3913
- [原创] 第六题 寻回宝剑 writeup 6432
- [分享] 第四题 英雄救美 5474
看原图
赞赏
雪币:
留言: