试一试这个CrackMe?
本帖最后由 cpujazz 于 2021-9-23 17:21 编辑新手试试找出真码,老手试试爆破?
/////// ↓ 实在破解不了可以试试刮刮乐 : ) ↓ ////////
反调试
00403150 C3 retn
CRC校验
00404710 C3 retn
返回真码(记录12次真码就出来了)
00404790 $55 push ebp
vCmp 比较密码
00405C20/$55 push ebp
vJcc 计算返回地址
00407A70/$55 push ebp
信息框
00405FE0 55 push ebp
是否被调试标志位
005D2A34 0000 add byte ptr ds:,al
是否比较了12次
005DB2C0 0C 00 or al,0x0
(破解)
eflags置246(ZF=1)
00405DEF|.2BC3 sub eax,ebx
/////// ↑ 实在破解不了可以试试刮刮乐 : ) ↑ ////////
本帖最后由 成熟的美羊羊 于 2021-9-21 12:35 编辑
第一个反调试 ,在403150 ret
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/091957512-1.png)
CRC校验
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/091933290-1.png)
改成这样 , 或直接在404600ret
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/092033718-1.png)
407C00 按钮事件
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/092116452-1.png)
往下跟 , 在407C2B看到了花指令 ,和反调试的标志位
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/092757000-1.png)
发现了获取编辑框内容
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/093023754-1.png)
密码长度需要12位,且不能为空 , 这个设计有点奇怪,明明密码只能>=12,还要判断是否为空
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/093053973-1.png)
407CF7可能是关键跳
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/093311646-1.png)
原来是暗装 ,保存补丁,数据,重新加载程序
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/093402392-1.png)
不让他跳 , 反而弹出了Faild,在MessageBoxA下断点
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/093756590-1.png)
发现断不下来 , 反而从ntclose走了出来 , 这怎么能行 , 这肯定是自己构造的弹窗函数,封装的程度大概率没有系统的API高 , 看堆栈 , 看看有没有有用的信息
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/093852104-1.png)
看样子是找到了 , 但是下面有个407A50 , 407A33也是Faild , 都下上断点
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/094030542-1.png)
程序断下来了 , 是下面的那个407A50
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/094153804-1.png)
Ctrl+R , 找到了两处调用 , 这是第一个 , 很简单的VM_CALL(自我理解) , 让我们打上标签
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/094238738-1.png)
这下子就舒服了 , 上面的404495是反调试 , 不管他, 反正反调试我们都干掉了 , 时间有限 , 我们修改407A50 ,使其跳转到407A20
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/094403477-1.png)
5DB2C0需要置为C , 但是我也不知道他能干啥 , 不管他了 , 直接NOP
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/095114092-1.png)
搞定
!(https://gitee.com/cRaCkSheep/images/raw/master/pic/20210921/095156822-1.png)
楼主能说下5DB2C0这个标志位是什么吗 (似乎是字符串的长度)
本帖最后由 Tsihen 于 2021-10-16 17:04 编辑
成功了,改得有点多,有几处不需要改
反调试和CRC都是在另外一个线程上(吧),直接结束线程就可以了
谢谢分享!谢谢! 光退出就把人整疯了,感兴趣的可以下断点00407C49跟跟,无奈,万恶的算法!最后,附上一个直接可以F9的,我只能帮大家到这儿啦!{:1_909:}
本帖最后由 cpujazz 于 2021-9-21 11:07 编辑
成熟的美羊羊 发表于 2021-9-21 09:55
第一个反调试 ,在403150 ret
!()
有点取巧的嫌疑,试试找下vJcc爆破,或者找下真码 cpujazz 发表于 2021-9-21 11:02
有点取巧的嫌疑,试试找下vJcc爆破,或者找下真码
学业繁忙, 下周有机会再试{:301_1004:} 00407D9F E8 7CDEFFFF call 00405C20 根据key计算出eax值返回地址
00407DA4 83C4 08 add esp, 0x8
00407DA7 8945 EC mov dword ptr , eax ; 赋值给变量
00407DAA E8 00000000 call 00407DAF
00407DAF FF75 EC push dword ptr 变量入栈返回
00407DB2 36:834424 04 0A add dword ptr , 0xA
00407DB8 C3 retn ; 返回
搞了十分钟,反调试都过不了。。。果然我还是太菜了。。。 我要下载试试手
页:
[1]
2