发一个CM
本帖最后由 Icc 于 2017-10-14 14:09 编辑CM不难 成功输出Success
本帖最后由 OSVince 于 2017-10-14 17:03 编辑
注意点。。重来 OSVince 发表于 2017-10-14 15:59
序列号:{N0rMa1}
这个CM属于硬件编码吗?
逆向分析思路,查找字符串Success,跟到一下代码:
不对。
仔细看看提示 和我给的有什么不一样 Icc 发表于 2017-10-14 16:21
不对。
仔细看看提示 和我给的有什么不一样
这个我搞不定,我太菜了。期待高手来解决,能出分析思路最好。
OSVince 发表于 2017-10-18 09:12
这个我搞不定,我太菜了。期待高手来解决,能出分析思路最好。
要不要注册码 本帖最后由 OSVince 于 2017-10-20 08:50 编辑
Icc 发表于 2017-10-19 20:16
要不要注册码
还是算了,可能我分析的方式不对,我在好好学习,然后在回来尝试下。况且注册码不是目的,思路才是最主要的。
OSVince 发表于 2017-10-18 09:12
这个我搞不定,我太菜了。期待高手来解决,能出分析思路最好。
其实没什么,主要是IsDebuggerPresent返回1的话才能进入到真正的算法和判断。
如果仔细分析的话是可以发现的,程序有溢出漏洞,只要通过注册码来覆盖掉存放IsDebuggerPresent返回值的变量就行了。我来一组吧。
692659380\礱a癴fXJFLXJFLXJFLXJFLXJ
你拿去分析一下吧。 本帖最后由 OSVince 于 2017-10-23 10:52 编辑
Icc 发表于 2017-10-21 21:22
其实没什么,主要是IsDebuggerPresent返回1的话才能进入到真正的算法和判断。
如果仔细分析的话是可以发 ...
返回1就是要程序认为是在调试器模式下才能真正进入算法和判断? OSVince 发表于 2017-10-23 10:32
返回1就是要程序认为是在调试器模式下才能真正进入算法和判断?
嗯。。没错 Key的形式为 692659380#######***************** ,总长度33字节。第1到9字节,692659380,固定数据,用于转换为10进制长整型,传递给srand取得固定随机数的前12个26以内的数据,然后和指定的12个byte进行比较,其实692659380可以看成是序列号了。第10个字节,非数字字符即可,第10到16字节分别是srand的种子,取出随机数列表中的第一个数,替换掉第21到27字节的数据,用于显示。第17到32为任意数据,无用。第33个byte用于篡改IsDebuggerPresent的返回值,非0即可。需要显示的内容完全取决于第10到16字节的数据对应的随机数列表的首位。
页:
[1]
2