iTruth 发表于 2020-3-16 15:59

Crackme挑战

成功返回正确的源码解压密码,失败返回错误的.
这里没有任何复杂的算法,里面的算法都非常简单

通过阅读汇编代码完全可以推出解压密码,只要你能读到正确的汇编代码...
我个人认为我写的这个应该挺难的,如果有大佬破解出来了务必贴过程
这里给张失败的截图,因为注册码只有一个而且每个人的机器上都一样...



VC++编写 无壳 无花 有反调试和反附加 (反调试和反附加全自己写的没用什么开源库所以不必担心它会太复杂)

Crackme:



源码:

赤座灯里 发表于 2020-3-23 09:22

iTruth 发表于 2020-3-23 08:10
厉害,我顺便问问大佬至多能接受多难的CM?比如说VM或者区段加密能接受吗?问这些只是为了了解CM的难度最好 ...

如果是自己写的东西,多难都可以,给人测试强度就是为了反应你的技术水平。如果是加vmp这种第三方壳,还做什么cm,每个人都加个vm丢上来给人破呗,还有什么意思

iTruth 发表于 2020-3-16 18:39

梦游枪手 发表于 2020-3-16 18:33
用IDA可以省很多功夫,不用白不用

当初写这个程序其实是为了锻炼自己动态分析的能力的,不然算法也不会如此简单
以前一直用的GCC突然用VS都有点不会用了.好多陷阱混淆都被优化了自己也不会搞...

梦游枪手 发表于 2020-3-16 18:08

TLS里设置真正的函数和加密过的key,然后在main函数里调用。总体来说不算难吧。

iTruth 发表于 2020-3-16 18:24

梦游枪手 发表于 2020-3-16 18:08
TLS里设置真正的函数和加密过的key,然后在main函数里调用。总体来说不算难吧。

难也是相对的吧,对于像我这样的小白来说不用IDA真够呛

梦游枪手 发表于 2020-3-16 18:33

iTruth 发表于 2020-3-16 18:24
难也是相对的吧,对于像我这样的小白来说不用IDA真够呛

用IDA可以省很多功夫,不用白不用{:1_918:}

Azhan1998 发表于 2020-3-17 17:26

IDA用起来还是挺好的

赤座灯里 发表于 2020-3-23 00:20

本帖最后由 赤座灯里 于 2020-3-23 00:41 编辑

map='op251zfu80xbcd***'
i=0
while(i<15):
    print(map[(i^0xFABCDEF)%len(map)],end='')
    i+=1
思路不错,学习了

iTruth 发表于 2020-3-23 08:10

赤座灯里 发表于 2020-3-23 00:20
map='op251zfu80xbcd***'
i=0
while(i

厉害,我顺便问问大佬至多能接受多难的CM?比如说VM或者区段加密能接受吗?问这些只是为了了解CM的难度最好是多高没有恶意

iTruth 发表于 2020-3-23 09:32

赤座灯里 发表于 2020-3-23 09:22
如果是自己写的东西,多难都可以,给人测试强度就是为了反应你的技术水平。如果是加vmp这种第三方壳,还 ...

不不不,我说的VM指的是自己写的.虽然原理是VMP的但指令集是自定义的
页: [1] 2
查看完整版本: Crackme挑战