52lxw 发表于 2019-1-4 00:38

含有crc32(3位)的crackme逆向分析与破解



题目文件:

拖入ida反编译:

可以发现程序很简单,就是一个verify函数来检查输入
跟进去看一下


发现crc32校验,先校验前3位,再校验前6位,因为前面三位可以爆破出来,检验前六位的时候相当爆破后六位
上脚本:
import binascii
import string,itertools
def   getString(before,cipher):
      symbols = string.printable
      for i in itertools.permutations(symbols,3):
            
            t = before+"".join(i)
            if (binascii.crc32(t)&0xffffffff)==cipher:
                return t
def   main():
      flag = ""
      data =
      print len(data)
      for i in range(0,len(data)):
            flag = getString(flag,data)
            print flag
if      __name__=="__main__":
      main()
结果:

cxbb 发表于 2019-1-4 08:26

厉害厉害

yaozhewen 发表于 2019-1-4 08:27

老哥顶一下

haoii123 发表于 2019-1-4 08:33

顶楼主,一直在找这套

ChinaF 发表于 2019-1-4 10:56

感谢分享

17620330904 发表于 2019-1-4 11:22

如果能向大神一样知识渊博就好了。

JansonLv 发表于 2019-1-4 13:05

谢谢分享,感谢楼主

voice 发表于 2019-1-4 16:30

支持支持楼主,

lixx123 发表于 2019-1-4 19:15


感谢分享

纯属意外怪我咯 发表于 2020-3-29 21:56

为什么我丢软件进去后,查看字符串,然后用那个O什么来着的设置一下,左边还是乱码呢
页: [1] 2
查看完整版本: 含有crc32(3位)的crackme逆向分析与破解