吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7672|回复: 15
收起左侧

[原创] 一个驱动类Crackme的破解(爆破分析)

[复制链接]
Fid 发表于 2010-7-26 08:09
本帖最后由 Fid 于 2010-7-26 09:00 编辑

http://www.52pojie.cn/thread-51861-1-1.html 这是那个Crackme的链接地址(你会发现作者也是我。。)

我把Word文档也给大家留下吧。。。要上传图片。。

作者:刄閪闁閸闏乄(Fid)

前几天(大概快半个月了吧,我记性不好),我自己写了个Crackme,发到了52pojie上,可惜因为是带驱动的,一群菜菜们就放弃了,而高手又没有时间来玩这些纯练习的东东。所以一直没被破解,连个爆破的都没有!。干,于是我发了个我自己的注册文件帮助大家分析。可惜,依然无人问津。

于是,今天打算自己破了,给大家看看这中带驱动程序的破解是怎么样进行的。

因为程序算法不是很复杂,所以我就先从静态开始讲,有空以后会来讲下,如何动态爆破。

用到的工具有IDA,和OD。

//因为这篇文章是我这个Crackme作者写的,所以思维上存在了一定的跳跃性,请大家理解。

正文:

       首先用OD载入Exe程序,直接运行下。

首先搜索字符串。


clip_image002.jpg 找到关键点的几条语句。双击You are Failed,来到关键点:

clip_image004.jpg

分别给00401859与00401853加入标签式注解,使之程序更易于解读。

这是程序的上半段的截图:

输入Fivedoor。

在CreateFileA函数前下断。


clip_image006.jpg 只要大家有一定的功底就能看出这几个jnz Fail 之上的判断是什么内容。

还是简单说明下,这两个jnz(第一个是判断文件是否存在(文件名为Reg.c+输入的用户名),第二个判断注册文件大小是否为0x80字节)

再往下。


clip_image008.jpg 这里只是单纯的比较读取是否顺利获得ReadFile长度是否为0x10。这是个循环,会读8次,读出所有的内容(0x10*8=0x80)

在接下来就是本文最最关键的地方了。

clip_image010.jpg

前面是获取设备的句柄的一个CreateFile我已经掠过了。

这里WriteFile处因为只是简单的比较写入的值,这里不会错误(程序我写的,所以我知道,其实这里也需要简单的分析下),关键是ReadFile处,才是关键,返回0x30(’0’)就失败。

为什么读取会返回1呢?大家可能在找有没有一个叫FDCrackme的文件,然后它的头部是”0000000…”所以失败了。

其实不是这样的,读取设备内容,回调用驱动设备的IRP_MJ_READ。而不是大家所想的和读取文件内容类似。(这里主要给菜菜们科普下,大鸟不要喷我。)

这里的内容只要循环8次,都不是’0’就可以了。

接下来就不可能用OD多做什么了。

接下来换IDA,载入驱动程序后。会提示你是否载入PDB文件,(我有,可惜大家没有,所以我也不载入了。不过大家还是一起选Yes吧)

科科科,这里去找DriverEntry喽。大家随便找找

clip_image012.jpg

当指针停在这里时就DriverEntry了,过程就不详细讲了。

clip_image014.jpg

注意到这里就是关键了,这里是给DriverObject的IRP处理函数赋值,这里需要去Wdm.h找寻真相。

clip_image016.jpg

不要急着找0x34对应的值你找了也找不到。呵呵,这里要去研究DriverObject的结构,我就跳过了,大家看大小两个关键是IRP_MJ_READ/IRP_MJ_WRITE呵呵

两者是相邻的所以分别是34h和38h,呵呵那你就错了(思路是对的,其实44h和48h)。其实真确的答案是从上到下为

DriverUnload(虽然不是IRP但也其实也能算个IRP(~.~||))

IRP_MJ_READ;

IRP_MJ_WRITE;

IRP_MJ_CREATE;

你都答对了吗。

呵呵那么接下来转到IRP_MJ_READ。


这是程序大致框图

clip_image018.jpg

爆破方法:

clip_image020.jpg

这里的jz改为jmp

clip_image022.jpg

这里nop掉就OK了。

大家修改时一定要仔细喔,出错了会蓝频的哦。

////////////////////////////////////

当然大家想分析算法也是很简单的。

就到这吧。

驱动Crackme的破解.rar

99.73 KB, 下载次数: 27, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 1威望 +1 收起 理由
wgz001 + 1 最后那里还是不明白

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Fid 发表于 2010-7-26 08:12
大家先凑合着点着看吧。不行就下Word文档
2666fff 发表于 2010-7-26 08:15
 楼主| Fid 发表于 2010-7-26 09:02
回复 3# 2666fff


    终于调节好了。
-------------------------
饿。。是啊。悲剧了。
没办法,没好人去看。
顺便问下。怎么加入编程小组呢?
nofriend 发表于 2010-7-26 09:25
呵呵,佩服你了。
546865173 发表于 2010-7-26 09:32
kankankan
546865173 发表于 2010-7-26 09:33
kankankan
2666fff 发表于 2010-7-26 14:52
回复 4# Fid


    这个组。。。你还是等LCG重开,申请LCG吧
Zanker 发表于 2010-7-26 15:18
支持下的~~~
头像被屏蔽
qq526033781 发表于 2010-7-26 15:25
感谢楼主.学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 09:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表