============================================================================
原CM下载地址:
http://bbs.pediy.com/thread-216760.htm
此CM自发布已满两周,也许菜鸟畏难,大牛不屑,至今无人破解。那就到此为止吧,今天公布答案了。
============================================================================
前言:
异常为主,异或为辅。
我放出CM的时候其实已经有提示了。本CM精心将C++不同的异常处理机制引入,“异常”、“异或”是本期CM的主题(所有的加密全是简单异或)。其实取这个名字已经与前一个CM有联系了。前一个CM叫喝啥哟,是李小璐的广告,这一次其实也是她的广告:特种兵生榨椰子汁。只不过引用了三句广告语:
阳光活力原生态
新鲜健康有生机
特种兵生榨椰子汁
这是此CM的KEY-FILE文件的原始串,但不是其内容(内容若直接是明文岂不是太小儿科了?话说本人做CM后也用字串参考搜索了来着,若是能找到,再从源码上进行处理,直到找不到为止。)。制作此CM又是一个从逆向者角度出发的异类思路。首先,窗口中放着文本框,旁边有按钮。一般人第一反应就是从文本框、按钮突破,嘿嘿,如果你也是这么想的,那么,恭喜你!你从第一步起就已经落入圈套了。
设计思想:
一、异常流是此CM的主要塔防点。分为两种不同的异常处理方式,一是__try __except的C++ SEH方式,另一种是传统的C++ try catch方式。对于假码的验证,全部采用try catch方式。而真码的验证全部采用__try __except方式,
外加一个顶级的SetUnhandledExceptionFilter大佬坐台验证。
二、真码、假码的验证分别由两个不同的类来进行处理。(你遇到的基本都是一个精心设计的类处理。)先说假码:
1、文本框、按钮点击为假码验证。这里的假码设定为:“康师傅蜂蜜柚子茶”。有一个专门的欺骗类:CTricky姐姐,她是专门设计来对付落入圈套的逆向者们的,是不是对你们服务很周到呢?假码的验证就是和你们玩,无论正确与否,最后都是没有结果的。
2、复制文本,点击按钮的那一刻起,CTricky姐姐就等着招待各位掉圈套的小羊们了,CTricy姐姐:我很善良的,跟我来吧,我给你好吃的哦~。

第一部分的SendMessage其实可以去掉,因为这里反而暴露了卧底“内联Hook”兄,它是负责拦截MessageBox。但为了降低点难度,已经故意露出破绽了。若被内联拦截了,此MessageBox是不会显示的:
3、再验证第二部分“蜂蜜柚子茶”,不通过无响应。通过了,就假装要显示“成功,你太厉害了”的提示框。但这个提示框是不会弹出来的,因为在第二部分开始的地方就已经对MessageBox进行了拦截,忽略弹框消息。当你费尽千辛万苦来到这里的时候,是不是有种骂人的冲动:尼玛,前面没路了!


三、再来说真码的验证流程。前面的CTricky姐姐是逗你们玩的,真码的验证也有一个专门的验证类:CTZB(特种兵)。嘿嘿,这个类名字就是部分答案!
1、当你们绞尽脑汁和Ticky姐姐玩的时候,其实正直的CTZB兄弟正一直默默地履行他的职责:迎接真正的实力派老大的到来呢。

大家看到注释了吧,本人已经非常仁慈地让CTZB兄一直等待有心人的出现了,否则,若是再加上限时处理,只能在30秒内处理。超过时间了就算你处理正确,也不会弹出成功消息滴!是不是很邪恶?!
2、当IsReady通过之后,就可以进行真码验证了。IsReady是什么呢?

[培训]科锐逆向工程师培训第53期2025年7月8日开班!