软件逆向练习--Reverse

如有错误或理解不到位的地方劳烦各位大佬指出,感谢!

一、Reverse000.exe

1.使用OD打开Reverse000.exe
在这里插入图片描述
2.右键选择中文搜索引擎->智能搜索
在这里插入图片描述
3.双击please input password:跟进去
在这里插入图片描述
4.此处为明文密码,直接就能找到
在这里插入图片描述
密码为: i love this game(i前面有个空格)

二、Reverse001.exe

1.Ctrl+F9运行到输入的位置,之后随便输入一个密码测试一下
在这里插入图片描述
2.第一个数字会与0x32进行比较,之后JE跳转,然后我们跟着JE看看下面的代码
在这里插入图片描述
3.跟下来发现下面又有一个CMP,其实这里就是比较第二个数字的位置,下面也照样有JE,跟上一步一样,不断跟JE找到CMP的比较值就可以了
在这里插入图片描述
4.随着最后一个JE我们就来到了成功
在这里插入图片描述
最后的值为:32 73 38 33 67 72 33 6b 79 33 6b 77 33 68 64 71
当然,这里全是0x32 0x73 … 0x71
然后我们对照ASCLL码
0x32 2
0x73 s

0x71 q
最终密码:
在这里插入图片描述

三、Reverse002.exe

1.日常Ctrl+F9跟进来,随便输一个密码测试一下
在这里插入图片描述
2.来到我们的第一次跳转,根据后面的代码可以看出这里是一个判断跳转,后面的代码也可以看出区别,还是照常跟着JNZ走
(JNZ结果不为零(或不相等)则转移),说明这里第一个值与0x33不相等的时候才会跳转
在这里插入图片描述
3.现在我们来到了第一个属于密码的CMP对比的位置,还是按照上一题的方法,不断JE,找到CMP,直至成功提示
在这里插入图片描述
4.这里就来到了我们的成功提示的位置,这里也可以看出我们最后一位是0x71
在这里插入图片描述
至此我们得到的数字:33 31 31 73 39 68 34 36 38 67 32 72 41 36 4f 6b 59 79 78 36 71 6b 36 77 68 36 65 68 79 64 77 71
根据上一题,可以判断33是不属于密码的值的,真正的密码从31开始,71结束,故实际密码值为:31 31 73 39 68 34 36 38 67 32 72 41 36 4f 6b 59 79 78 36 71 6b 36 77 68 36 65 68 79 64 77 71
5.然后我们测试一下,发现当输入0x31 0x31 0x73 0x39…的值时,突然发现第二个0x31的位置不是我们之前的JE,而是JNZ,我们知道(JNZ结果不为零(或不相等)则转移),所以第二值得不为0x31才能正常跳转,之后我们继续测试后面得值
在这里插入图片描述
6.来到下一个值对比得位置,从这里大概能看出来了,咱们每一个正确的值还得通过JE后的CMP拿到,所以我们之前拿到的值按照这个方法进行第二次筛选
在这里插入图片描述
最终的值:31 73 68 36 67 72 36 6b 79 36 6b 77 36 68 64 71
我们继续对照ASCLL码,得到我们最后的密码
在这里插入图片描述

四、Reverse003.exe

1.日常Ctrl+F9跟进来,随便输一个密码测试一下
在这里插入图片描述
2.这里可以看到我们的JGE,所以这里是大于等于则跳过,可以看到这里是与7做比较,故应该大于7的情况跳过就不会触发下面的错误提示
在这里插入图片描述
3.跟着JGE来到了第一个属于密码的CMP对比的位置,还是之前的老方法。这里是JNZ,JNZ是结果不为零(或不相等)则转移,故这里如果匹配不上的话就会跳转到下面的错误提示,这里就没有JE了,我们接着往下看
在这里插入图片描述
4.接下来往下就找到了第二个做比较的数值,按照同样的思路不断往下找,直至找到成功提示
在这里插入图片描述
5.最后得到的结果是68 31 32 33 6A,对应ASCLL码就是h123j,密码是一个倒循环的数,在寻找值得过程中有一段是CMP EDX,ECX,这里相当于在判断该值得倒数第一位,由此可知,这里的第一位与最后一位相同,第二位与倒数第二位相同…,然后运行到第一个数字的CMP时发现ECX值为6A,所以发现到这里是从后往前对比的,所以这里应该是倒序的
在这里插入图片描述
6.最后测试密码h123jj321h,成功了
在这里插入图片描述

五、Reverse004.exe

1.日常Ctrl+F9跟进来,随便输一个密码测试一下
在这里插入图片描述在这里插入图片描述
2.日常CMP …JE…拿到Name
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.继续往下单步走,看到EDX就是68,所以不管了,然后在下面找到密码的值
在这里插入图片描述在这里插入图片描述
4.最后拿到的Name是68 38 67 32 79 77 ,也就是h8g2yw,密码是61 33 6F 72,就是a3or
在这里插入图片描述

六、Reverse005.exe

1.同上步骤,最后结果为Name:61 31 36 73 6c 65,为a16sle;Id:62 33 6f 72,为b3or
在这里插入图片描述
2.步骤如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、Reverse006.exe

1.来到开始的地方,这次是key,TEST会判断eax是否为零
在这里插入图片描述
2.照常找值
在这里插入图片描述
3.后面的找值得方法有了一点点变化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.这里其实我们已经找到所有的数值了61 31 36 73 6c 65 6a 77 66,对应
a16sle jwf
在这里插入图片描述

八、Reverse007.exe

1.点进去,找到他
在这里插入图片描述
在这里插入图片描述
2.找到Name的值:31 32 67 65 6c 34 ,即 12gel4
在这里插入图片描述
在这里插入图片描述
3.找ID的值,31 35 70 62
在这里插入图片描述
在这里插入图片描述
4.成功了
在这里插入图片描述

九、Reverse008.exe

1.第一步,跟进去在这里插入图片描述
在这里插入图片描述
2.往下找到值,第一个数是31,第二个是35,最后Name是31 35 70 62
在这里插入图片描述
在这里插入图片描述
3.ID无关,ID长度小于7即可
在这里插入图片描述在这里比较次数,直至EAX>64时跳出,和ID值无关在这里插入图片描述在这里插入图片描述

附1:

按钮点击处理函数特征码
mov ecx,dword ptr[ebp+8]
call dword ptr[ebp-8]
cmp esi,esp

1.MFCPj000.exe
在这里插入图片描述
按一下回车或者空格
在这里插入图片描述
或添加 | WS_VISIBLE ,点击确定按钮即可见
在这里插入图片描述

在这里插入图片描述

2.MFCPj001.exe
搜一下特征码,跟进去找,打个断点
在这里插入图片描述
在这里插入图片描述
先把窗口弹出来,点一下按钮,就会断在刚找到的call
在这里插入图片描述
然后F7进去,单步一个F8,来到015DB410的位置,在这里我们就可以往下看看每一个CALL了,这里正确的位置是我打了断点的015DB455这里这个CALL,跟进去看看
在这里插入图片描述
跟着JMP跳下来就找到我们的密码了,C 8 5
在这里插入图片描述
在这里插入图片描述
我们试一下密码,成功了
在这里插入图片描述
3.2.MFCPj002.exe
同样的步骤,找到特征码,打断点,F7跟进去,F8单步步过
在这里插入图片描述
找到第二个CALL,图上打了断点的位置,继续跟进去
在这里插入图片描述
这里需要注意,有些跳转是JE,有些跳转则是JNZ,JE是相等则跳转,如第一位密码,等于1则跳转;JNZ则是不相等跳转,如第二位密码,不等于1则跳转,故第二位密码应为0,下同,注意区别即可
在这里插入图片描述
最后我们找到九位密码为:101100101,然后我们测试一下,成功了
在这里插入图片描述
4.MFCPj003.exe
老方法,搜索特征码,打断点进去找到关键位置
0的地方按两次重新变为0,1的地方按一次
在这里插入图片描述
在上图中015EB512的CALL的位置打上断点,跟进去看看,一下就来到了开心愉快的地方,然后密码为011010101
在这里插入图片描述
测试一下,再次提醒:0的地方按两次重新变为0,1的地方按一次
他并不知道自己是0,点击一次变为1,再点击一次变为0时他才算完整的一次,这里他才知道自己是0了
在这里插入图片描述

5.开动脑筋.exe
在这里插入图片描述

在这里插入图片描述

附2:
1.CrackMe_01.exe
在这里插入图片描述
用户名为明文密码就不再赘述了
在这里插入图片描述
2.CrackMe_02.exe
在这里插入图片描述
随便测试一下,然后看下OD
在这里插入图片描述
在这里插入图片描述
单步时可以发现之前明明拿到了用户名,为什么后面变成0了呢,我们可以多打几个断点观察一下寄存器中的变化
在这里插入图片描述
这里可以看见我们输入的用户名111
在这里插入图片描述
在这里插入图片描述
实验可知,用户名长度与序列号位数有关,但是这里我们也可以发现序列号是不能超过8位的
在这里插入图片描述
序列号长度=用户名长度,序列号值均为0即可
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值