C++无壳CrackMe,悬赏10CB
是上一个CM的未加壳版,看看有无大佬能解开{:301_986:}出现密码成功即为破解成功 本帖最后由 爱飞的猫 于 2024-8-31 22:25 编辑
在 `00403161` 断下,查看 `eax` 得到密码 `WK66615134434056`。
https://imgsrc.baidu.com/forum/pic/item/77094b36acaf2edd4cd53ecbcb1001e9390193e8.png 我已经用爆破和追码两种方式破解掉了,说一下过程:
以防万一先查壳
C++写的无壳程序,拖入od开始分析。根据楼主给出的成功图片猜测是用到了MessageBoxA函数,不管那么多,先搜索中文
看似是有误导性跳转,一个个点进去看看吧(其实是我不会根据API打断点)
一个跳转下面连续输出了两句话,而且没有调用MessageBoxA,我猜这个不是。逐个查找直到我看到了这个
这里应该是正确的,也确实调用了MessageBoxA,当我想无脑尝试nop掉那个jnz的时候发现了不对劲的地方,test eax,eax 这是在拿自己和自己比较?那这个jnz岂不是永远都会跳转。分析代码后我觉得这三个跳转都很可疑,似乎是嵌套的if写法,我决定全nop掉试试
nop完直接运行程序随便输入点什么看看效果
什么情况?我还没输入呢,咋就弹窗了?是个异步的循环校验吗?
尝试追码,在第一个跳转上打断点随便输入点东西看看是什么情况
我是不是直接发现了什么?:lol
但是当我双击打开一个新程序准备尝试的时候发现不对,很奇怪,nop可以成功说明这个跳转找对了,但是为什么?尝试了半天已经改乱了,我决定重新加载一次程序调试,这次直接找到这里打上断点观察,我惊讶的发现后面的数字变了!这是根据程序启动时间动态生成的吗?我立刻打开新程序验证,果然成功了
这个稍微有点意思,在关键跳转附近有花指令,在其他位置也有误导性提示 人太菜了卡关了。。惨。。
https://s21.ax1x.com/2024/09/02/pAVJK0g.jpg hxr1023 发表于 2024-8-31 23:11
学习了,可是我有个疑问,我的程序会检测调试器从而把密码变成乱码,输入密码的验证函数也不会触发,请问 ...
x32dbg 有个叫 scyllahide 的插件,默认配置能过你的检测。
od 常见的那个插件是 StrongOD 本帖最后由 跌宕起伏 于 2024-9-1 12:17 编辑
是不是错误了
hxr1023 发表于 2024-8-31 23:11
学习了,可是我有个疑问,我的程序会检测调试器从而把密码变成乱码,输入密码的验证函数也不会触发,请问 ...
od有一个插件是用来隐藏调试环境的,忘了叫什么名了。论坛里的定制版od也有这个插件,能过掉很多反调试 作为一个纯小白,感觉注册码比爆破简单
只需要搜索字符串,找到没有“被骗了”那段的“密码正确”,在上面几行下断点就能看到eax里的注册码了
但是爆破我没搞定,不管是nop,还是改jnz都最后没反应了。。。。
很想学习一下源码是什么样的。。。。。 爱飞的猫 发表于 2024-8-31 22:24
在 `00403161` 断下,查看 `eax` 得到密码 `WK66615134434056`。
大佬怎么亲自下场了{:301_998:} 悲剧小白 发表于 2024-8-31 23:05
我已经用爆破和追码两种方式破解掉了,说一下过程:
以防万一先查壳
学习了,可是我有个疑问,我的程序会检测调试器从而把密码变成乱码,输入密码的验证函数也不会触发,请问你是怎么过掉调试器检测的呢{:301_977:} 悲剧小白 发表于 2024-8-31 23:18
od有一个插件是用来隐藏调试环境的,忘了叫什么名了。论坛里的定制版od也有这个插件,能过掉很多反调试
原来如此,之前我是用x32dbg来测试的,在反调试的地方下了很多暗桩,结果od根本不触发:dizzy:
等我再回去研究一下{:301_998:}
页:
[1]
2