18.10.5 实验吧----此处无声

下载下来就是如上图的exe,先用peid看一下有什么壳之类的。结果是nothing found,有点厉害,查不出什么编程语言或者壳,应该还是有保护的

在OD中搜索字符串没搜索出来,那肯定有保护,咋办,直接对MessageBoxA下断点(bp MessageBoxA),慢慢往回找关键函数入口点,然后手动脱壳,僵硬,感觉还是不太行,就用了pushad搜索慢慢找,后来大佬和我说这种只是常见的smc,直接根据IDA,在start的最后打个断点,dump下来就好了

但参照了大佬的文献,直接设置断点定位更直接(MessageBoxA),如下

接下来是个漫长的单步执行的过程,要有耐心,为了不错过所有内容,到代码段之后再设一个断点,如下

继续往下找,可以看到一块关键点,如下

字符串长度只能为32,并且对比的字符都是0~F,典型的MD5算法,在这里设置断点观测一下,可以看到运行到此处时,果然把输入的密码压入了edx

我们试着输入32位,然后开头四位改为09AF在测试一遍流程

然后我有个思路就是,在输入的字符串左右可能有别的重要的字符串,习惯性搜一下,这是我的个人习惯,然后这次帮了我大忙,我在我输入的字符串的上面一块区域找到了nsfocus的MD5值(B9B7DD1C421E005BC9A7F70B848E3D0E),如下图

也就是说密钥的判断适合注册用户名的MD5码进行对比,CrackMe判断方式为Eecode(Key)=MD5(Name)

然后我接下来不断试了好几遍,发现了一个亮点,在nsfocus的MD5值的上方的数据有一串字符串永远不变(3547825C338C85779A67457A6D5C1647),而夹在两者中见的字符串随着我们输入的注册码的变化一直在改变,所以可以合理的推测出加密算法只用到0-F,且可能有自身的密钥串3547825C338C85779A67457A6D5C1647

大佬说只有可能是RC6,RC6Decrypt(MD5(Name))=Key,不知道这个的话的确就凉了

那只能等我把RC6研究透了再说了,或者反正也就16*8位,要不有大佬可以爆破一下……

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值