【】(iishu),
“crack”是很多逆向论坛里十分流行的玩法。
一些人为了测试自己的软件保护技术,就会制作一些crack程序,让别人来尝试破解。
网上也经常会有一些k)竞赛。
根据设计者的意图和加密技术水平,不同的crack,破解难度天差地远。
江寒点击了一下下载链接,题目给出的crack,很快就下载了下来。
然后,先将其运行了起来,观察一下程序的外在表现。
这是个文件,界面十分朴素,只提供了两个输入框。
一个用来输入erna(用户名),另一个用来输入er,序列号),下面还有个【log】按钮,用来检测是否匹配。
看完了这些内容,对程序的结构心里有数之后,江寒就将窗口关掉了。
随后,他就打开了著名的调试工具ollyice,并在调试器中加载了这个crack。
开始调试之前,先设置个断点。
断点是调试器的一种功能,可以让程序中断在需要的地方,以方便分析。
常用的断点有t3断点、硬件断点、内存断点、消息断点、条件断点等。
例如,就是很常用的消息断点,功能是当鼠标左键抬起时,中断程序运行。
≈ext断点,当程序试图调用doi,获取输入框里的文本内容时,就会被拦下。
江寒先试着设置了lgitetexta断点,然后按了下f9,让程序跑了起来。
crack的窗口出现后,先随便输入一组,然后用鼠标点击了一下【log】按钮。
结果……
程序直接弹出了一个sgbox(消息框),提示【用户名和序列号不匹配】。
很遗憾,在这次尝试中,断点并没有发挥作用。
这说明在这个crack里,并没有使用lgitetexta来读取字符串。
否则的话,就会被调试器拦截下来,而不会执行关键call了。
所谓关键call,是指程序中用来计算用户名和序列号的函数,通常执行完关键call,很快就能找到一个条件跳转语句。
如果序列号与用户名匹配,就会继续往下执行,否则就弹出出错提示……
接下来,江寒又试了一下断点。
这次终于成功断了下来。
接下来就很简单了,交替使用f7(步入)、f8(步过)两个快捷键,单步跟踪即可。
这个程序是那种很老实的程序。
意思就是没有什么乱七八糟迷惑人的东西,也没有刻意增加难度,为难挑战者。
以江寒的调试功力,跟踪这么老实的程序,自然是易如反掌。
他只花了3分钟,就找到了关键call。
随后,将这个call语句,设为断点,然后,重新运行。
再次填写序列号、用户名,点【log】……
很快,程序中断在了关键call上。
江寒按了一下f7,进入了函数体内部,这样就看到了一段以ret结尾的反汇编代码。
这段代码的功能,就是根据(序列号)。
到了这里,就比较考验基本功了,必须读懂反汇编指令。
当然,这对于训练有素的人来说,也是的一件事。
江寒花了十分钟,将算法分析了出来。
看得出来,设计者的确没有故意难为人,算法设计得十分简明。
首先,把64变换,然后对新串中的字符,做ascii码值累加操作,再经过一番算不上十分复杂的数学运算后,就得到了一个新的字符串。
此字符串就是与erna对应的sn,其允许包含大小写字母和数字,以及一些特殊字符,算法保证其与erna对应的唯一性……
这道题可以说是白给,只要稍微懂点逆向调试,基本功别太差,一般都能轻松搞定。
江寒估计,官方第一关弄得这么简单,可能只是打算过滤一下参赛者,将那些没事儿来凑热闹的人排除掉。
接下来是第二题。
仍然是crack,但和第一题比起来,难度就突然提高了十倍不止。
什么花指令、虚拟机、静态反汇编、动态反调试……
凡是当前流行的保护手段,几乎一应俱全。
而其核心算法,更是动用了。
也就是主办方还算有点良心,没用出rsa2048这种大杀器,否则大家比的就不是逆向水平,而是计算机的性能了……
江寒足足用了二十分钟,才计算出了正确的sn,通过了这一关。
随后,他就一道题、一道题,连续挑战了下去。
越往后,题目的难度越高,花费的时间自然也会稍微长一些。
不光只有crack,还有一些别的玩法,比如破解个虚拟账号系统的密码之类的。
最有趣的是第5题。
目标数据在内存中构成了一个虚拟魔方,并根据erna随机打乱。
要求构建一个字符串,用此字符串的二进制序列,作为操作指令,让这个魔方复原。
令人发指的是,这个魔方不但高达11阶,还有随机生成的“块坏”!
坏块的意思是,你看不到它的“颜色”,但如果不能放在正确的位置,就不能通过最后的检测……
江寒还得额外写个魔方通解程序,将这个虚拟魔方转放进去,用穷举法求解出复原过程,然后才能根据要求,构造出对应的字符串……
就这样,直到下午3点,江寒才终于解决掉了前6道题,来到了最终关门前。
奖金也顺利地到手了15万美元。
为什么是15万?
第四题做完之后,江寒才发现,原来那道题的奖金,只有前1000位破解者,才能认领……
好在后面的题目越来越难,过关的人也越来越少,才没被其他人把奖金全都抢走。
最终关。
江寒满怀期待地点了进去。
题目是一个单片机ro,要求破解其加密机制,去掉防复制模块,并提交dup出来的无加密ro。
江寒按照要求,下载了目标ro。
然后祭出调试工具,加载进来一看……
江寒顿时就傻眼了。
我了个去,这不就是自己的坏苹果吗?
le也算世界知名平台了,居然用坏苹果作为压轴。
怪不得奖金那么高呢,主办方没准根本就没打算掏这笔钱。
不过,千不该、万不该,你们不该一声不吭地,就用了咱的坏苹果。
更不应该的,居然还邀请了我这个“发明人”,参加了这次的锦标赛!
江寒偷笑了两声,然后果断从硬盘中,翻出了一个文件,上传到了答题区。
不是别的,正是坏苹果的原始ro文件!
这是他能想到的,最简单的拿到500万的方法。
想到le里负责这个比赛的人,看到了这个文件之后,种种可能的精彩表情……
江寒忍不住嘿嘿一笑。
接下来,就要看le官方,到底舍不舍得那500万了……
感觉已经有点饿了,江寒他就关掉了电脑。
打算先去做个饭,解决一下温饱问题,然后,又饱又暖的时候……
然而,江寒刚走到厨房门口,就忽然顿住了身形。
有点不对!
今天又是在“hackk,大脑持续高强度运转了整整一天。
可是,居然一点疲倦的感觉都没有?!
按照以往的经验,像是这种用脑强度,不吃个十条、八条冰岛红极参,只怕很长时间都缓不过来。
然而,今天的状态却好得有点出奇。
这到底是怎么回事?
难道……小媳妇不但能帮咱充灵感,还能给咱的大脑充能?
这有点不太科学吧?
类似那种喜闻乐见的活动,不增加能量消耗就不错了……
江寒思索了一下,忽然心中一动,连忙打开了系统ui。
看着龙飞凤舞的【学者】二字,以及紧随其后的一串小星星,如同呼吸灯一般,一闪一闪……
江寒不禁若有所悟。
重生学神有系统想和更多志同道合的人一起聊《重生学神有系统》,“ ”看小说,聊人生,寻知己~
(iishu)是,,,,!
猜你喜欢
- 琉长生
- 【女扮男装,强强,1v1】叶潇然此生住过孤儿院,当过影后,被挚爱背叛成过通缉犯,只因一双通灵宝眼最后落得于狗争食惨死下场 夜萧然,夜家唯一的继承人,却是天生懦弱无能甚至被人打死无人问津 再睁眼,叶潇然成了夜萧然,偶得最强(坑爹)不是,是最强通灵系统,废物变天才,学渣变学霸,天生影帝,网文大神,最强编
- 去归休
- 【2019“玄幻王者”征文】参赛作品
- 妍暖花开
- 因为一只猫咪,我重生到了少年时期。因为一个系统,我开始文抄公的生活。因为一本小说,我开启了虚拟网游时代。且看在新的世界,我赵暖阳如何称王称霸顺便把宠物猫进化成人,来把恩爱秀。
- 司唐
- 一朝意外,变身萝莉遇见三年前自己敬仰的电竞男神,然而这个男神有点怪。顾家二少为了活下去也是忍了,系统发布位面任务:活下去,离开这里你就能回到现实世界然而,顾二少摸遍自己浑身上下,还是那个小萝莉。某游戏渣还跑过来叫嚣:拖大神后腿的渣渣
- 理想花
- 失忆的紫
- 秦晚前世被觊觎她未婚夫和财产的姑姑、表妹逼到跳楼,断了腿、污了名,还连累了至亲至爱。重生回到危急时刻,正想着如何反败为胜,被一高能虐渣系统砸中。还没来得及高兴,某统哭叫绑错了人。它从亿年后奔来,本是要助她隔壁家的帅哥哥逆袭。非死无法解除绑定,黑芝麻馅萌妹子与同属性系统…建立互助联盟。于是,霸道小哥哥
- 小强
- 小强
- 戏沐
- 前世她战战兢兢,当上了职场经理,却在遭受男友闺密的背叛意外重生,系统在手,天下我有。重生一世,又怎么能继续受人欺压?坑爹系统,白猫无常,为她打开了一个新的世界,从此,一人扮演两个角色,走私,黑拳,楼盘,皆是她的势力,对此,她表示很无辜,为啥你们一个个的都要找我麻烦?