吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3840|回复: 16
收起左侧

[新手问题] 萌新,求助一个破解的问题

[复制链接]
huzpsb 发表于 2019-11-13 20:45
如题,我在尝试弄学校机房的增霸卡时,想搞出密码来
先标操,断在GetWindowTextA
捕获1.PNG
然后F8追踪,死盯我输入的假密码
捕获2.PNG
也的确成功定位了比较的call
捕获3.PNG
也的确可以爆破了,但是我想追密码,
于是就IDA定位了毒瘤函数
捕获4.PNG
老套路F5,
捕获5.PNG
然后就蒙了
真的蒙了
越追越蒙

捕获6.PNG
完全看不懂什么是比较
(本来以为是在retn前面的比较那里int3就好了的)
所以,请问各位大佬,这咋整啊?
附件:
万恶的那个库:
https://www.lanzouj.com/i7cf9ud

免费评分

参与人数 1热心值 +1 收起 理由
三生三世s + 1 热心回复!

查看全部评分

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

2Burhero 发表于 2019-11-13 20:58
来人护驾,我路过围观
一米丶阳光 发表于 2019-11-14 18:02
基于你的分析,我给你提供我的思路,我不上图了,尽量给你描述的详细点:
1. 如果CDrvObject::PasswordsAction的返回结果是对密码的校验结果,那么关键函数就是CZbkObject::PasswordsAction里的DeviceIoControl
2. DeviceIoControl的第一个参数来源于CZbkObject::Initial函数,是指向主硬盘的文件描述符
3. 第二个参数是关键中的关键,第二个参数有一个生成规则
#define CTL_CODE(DeviceType, Function, Method, Access) (
  ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)
)
目前可以确定的是DeviceType是0x7对应
#define FILE_DEVICE_DISK    0x00000007
这也印证了第一个参数
到这问题来了,无法确定Function是什么,也就不知道这个函数具体执行的是什么逻辑(经查文档,无果),你可以继续按照这个思路,去找Function。我猜测是根据输入的字符串跟输入地址的硬盘扇区的内容进行对比,如果相等就返回一个长度为24的buff,基于这个思路,既然要比较,那肯定要事先写好,所以才有下面的思路
4. 第二个思路,IDA中观察CZbkObject这个类的函数列表,看到了几个比较敏感的函数名字
CZbkObject::SetWindowsPasswords
CZbkObject::WriteSectors
CZbkObject::ReadSectors
CZbkObject::ReadMultiSectors
CZbkObject::WriteMultiSectors
你那可以调试,可以试着调一下这几个函数,看看他往目标扇区里写了啥,或许能找到密码

最后,祝你好运~

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
小飞虫 + 1 + 1 用心讨论,共获提升!

查看全部评分

liu2514 发表于 2019-11-13 21:03
我也就能到:“也的确成功定位了比较的call”这一步。。。
小菜鸟一枚 发表于 2019-11-13 21:06
完全看不懂,萌新的我瑟瑟发抖!,另外请教下大佬,压缩包里面只有一个dll文件吗?这个是怎么运行的,没学过编程,不懂怎么操作!
 楼主| huzpsb 发表于 2019-11-13 21:31
liu2514 发表于 2019-11-13 21:03
我也就能到:“也的确成功定位了比较的call”这一步。。。

真的烦啊
爆破没有技术难度
可是没有意思啊
就是他 发表于 2019-11-13 21:34
萌新也要分层次啊。。。。。
乐灿峰 发表于 2019-11-13 22:11
蒙什么?这不是都出来答案了吗
 楼主| huzpsb 发表于 2019-11-13 22:58
乐灿峰 发表于 2019-11-13 22:11
蒙什么?这不是都出来答案了吗

我要的是密码,明文的
不是爆破
hjm666 发表于 2019-11-14 09:01
提供一个思路,在断下了GetWindowTextA且在输入了伪密码后能断下,说明确实断下的的确是获取输入密码的模块,这样你获得了获取输入密码模块的地址,这时候你因该在OD里执行到返回跳出获取密码的模块,跳出后十有八九是对密码进行验证的函数,你因该去IDA里F5这个验证的函数,然后再看是哪个关键跳导致程序返回密码错误,再回溯代码看哪里调用了函数验证密码找真正的密码
 楼主| huzpsb 发表于 2019-11-14 12:33
hjm666 发表于 2019-11-14 09:01
提供一个思路,在断下了GetWindowTextA且在输入了伪密码后能断下,说明确实断下的的确是获取输入密码的模块 ...

已经IDA定位函数了,但是没有看到比较函数
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 14:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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