64位CM
成功图附件里面有2个版本 一个是带debugger检测 一个普通的cm
带debugger检测的 不会提示也不会退出 检测到调试器后改变算法
无壳64位CM
理论上应该没多少人愿意做我混个脸熟也好 {:1_909:}
本帖最后由 梦游枪手 于 2019-1-24 15:31 编辑
能力有限,逆向的是不检测调试器的,程序启动后会调用两次GetTickCount相减,然后加上当前分钟,结果记为val吧
之后读取输入的整数,并减去这个val,截断成char,对’su_ _e_ _‘进行补全,上面得出的char会填入前面两个空,后面两个空是对char+0x10后再填入(也就是's'),所以结果等于0x63(‘c‘)就算成功,这个也可以从后面的判断看出来
所以,只要输入的数字减去val的结果的最后一个字节等于0x63就行了,只不过每次都要去调试器拦截val的值才能得出结果
{:1_900:}挂个一些时日到时候把 实现原理贴上来代码不多(杂七杂八 80行左右) 主要是用了一些开源的宏
刚刚自己分析找到了一处爆破点 很不错的分享啊,十分感谢感谢了 梦游枪手 发表于 2019-1-24 13:18
能力有限,逆向的是不检测的调试器的,程序启动后会调用两次GetTickCount相减,然后加上当前小时,结果记为 ...
厉害了老哥 完全正确可能是你结构体没看对 SYSTEMTIME的分钟
检测调试器的其实并没有什么套用之前的AntiDbg的库而已
主要是加了个骚操作 是初始化失败 改变了一下val值检测到了又改变一次 其他不变
你既然这个分析出来了 那个其实是一样的
大神666 初吻给奶嘴耶 发表于 2019-1-24 13:28
厉害了老哥 完全正确可能是你结构体没看对 SYSTEMTIME的分钟
检测调试器的其实并没有什么套用之前 ...
哈哈,那里确实看错了,我编辑一下,大神还是不敢当:lol 唉,搞不定,只能改呀改,
页:
[1]