逆向破解的入门题目

我选取了两条实验吧里的逆向题目,题目不是很难,对于刚刚入门逆向的人来说,我觉得十分有用,由于自身逆向水平有限,有很多地方自己也是一知半解,不多说,开始我的表演~

 

1.该题不简单

图片[1]-逆向破解的入门题目-安全小百科

下载压缩包的程度解压后得到一个exe文件,打开运行之

图片[2]-逆向破解的入门题目-安全小百科

可以看到hello是我们用户输入的,而注册码会通过本身的函数来计算获得,这时候我们就需要逆向程序,去看看它的加密函数是什么,然后根据这个加密函数来计算这个注册码~

首先我们要看这个程序有木有加壳,没有加壳,开始我们的逆向之路!

图片[3]-逆向破解的入门题目-安全小百科

找到他的加密方式

找到了下面我们开始分析,这个String是我们输入的字符串,String2初始为0,v1初始为0,下面进入循环,我们输入Hello(后续发现hello错误,因此H要大写),整个字符串就成了Hello,这时候v1作为一个计数器,实现对我们输入字符串的每一个字母的加密,又由于指针的作用,*(&String2+v1)可以实现对每个内存单元的操作,因此也就实现对每个字母的操作,继续看后面的加密方式~

v1为字母的位置,String[v1]为字母的ascii码值,然后有一个除余操作,最后再加上33

这里我们的加密方式就已经结束,总的来说就是

v1+(v1*字母的ascii码*字母的ascii码)%0x42+33

然后再计算完每一步,最后在前面加上一个Happy@

python脚本

2.证明自己吧

下载exe文件,打开尝试之

图片[4]-逆向破解的入门题目-安全小百科

要我们猜密码,,爆破?不存在的。。老老实实逆向去吧

图片[5]-逆向破解的入门题目-安全小百科

首先看有没有加壳,没有加,赤裸裸的c程序~

看这里的main函数,主要看if语句,我们可以猜测如果密码正确那么,就会跳到一个程序段,如果错误,就是另一个程序段,因此这里的函数名也稍有提示,一个是aGoodTheKeyIsYo,失败的话则是aYouDonTGuessIt,那么我们接下来要重点关注if的判断语句,为sub_401060,接下来我们跳转到这个程序段,去进一步分析他的加密原理

下面我们开始分析程序段!

首先我们看第一个程序段,首先这里我们需要看循环条件,a1的长度等于v5地址段数据的长度,这里我们又需要去查看以下v5的数据

图片[6]-逆向破解的入门题目-安全小百科

学过汇编的都知道DW所占用的是四个单元,因此,这里的v5数据为68571948、506E5878、546A1958、5E06,第一个函数段十分简单,将v5中的每一个数据与0x20进行一次异或运算即可

第二个程序段也十分简单,对v5中的数据进行一次减5的运算即可

第三个程序段的while函数中好像了混淆,不过我们经过抽丝剥茧,我们可以直接相当于a1=v5,其实这个程序段对结果没有任何影响

最后我们也就能得到的我们的加密函数

1.str=str^0x20

2.str-=5

附上Python脚本

最后得到我们需要猜测的字符串~

相关推荐: YIT-CTF(三) 密码学&PWN wp

题目链接:传送门 密码学不多,就三条,作为一个信息安全学生,密码学什么的最简单了~ 1.哼哼 小猪生活的地方在哪里? ★tip:yitctf{内容为小写} 小猪,联想到猪圈密码,百度详解地址:传送门 根据字符对应可知flag为HACK 2.卢本伟 LOL我只服…

 

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论