吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5818|回复: 32
收起左侧

[原创] 考古一个16年的CM , 用最笨的方法爆破

[复制链接]
成熟的美羊羊 发表于 2021-5-19 06:02
本帖最后由 成熟的美羊羊 于 2021-5-20 12:23 编辑

考古16年的CM

CM链接: https://down.52pojie.cn/Challenge/2016_Security_Challenge/%E3%80%90%E7%AC%AC%E4%B8%80%E9%A2%98%E3%80%91%E3%80%90%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%A32016%E5%AE%89%E5%85%A8%E6%8C%91%E6%88%98%E8%B5%9B%20%E3%80%91.rar

解压密码:D66F78C044047C81C96A12666505C128

这个CM , 小菜只有一个思路爆破 , 逆算法就更别提了[滑稽] , 最过分的是 , 大佬都不教我破[淦] , 差评 , 必须给差评
思路{

  1. push 一个参数后 , ESP寄存器的值会-4 , 下内存写入断点
  2. push 一个参数 , 会修改ESP寄存器值指向的地址 (123456这个地址指向了001000 , push过后 123456这个地址指向了401000)
    往死里给堆栈下断点 , 肯定会找到传参的地方(可能是最笨的方法)
    }

打开软件 , 输入任意假码 , 发现"failed" 字符串

image-20210519051529226

载入OD , 在MessageBoxA , MessageBoxW ,MessageBoxExA , MessageBoxExW函数下断

发现程序在MessageBoxA 这个函数断下 , 在堆栈19F6F0这个地址发现了 "failed!"字符串

image-20210519053033438

将地址转到 439012 , 发现了一条花指令

image-20210519053859794

在43900B地址上 , 按下Ctrl+E , 将8B改成90

image-20210519054013550

发现指令显示变正常了 , 但是没有正常函数调用的样子

如{

push xxx

push xxx

call 函数

} , 可以怀疑有个地址直接jmp过来调用MessageBoxA , 参数早就传好了.(在43900C这个地址下断点 , 就知道了)

image-20210519054026626

在ESP: 0019F6E8+194的地方 , 发现了一个返回到按下Enter , 如果没有发现OD界面里没有这个+190 , +XXXX的 , 双击一下 , 当前ESP寄存器的值就行了

image-20210519053224047

4011C5 , 判断CALL , Enter键进CALL

image-20210519053435584

一个大跳转出现了 , 继续按下Enter键

image-20210519053509507

噩梦开始的地方 , F2下个断点 , 在44068A这个地址 , 并返回软件 , 点击注册按钮 ,"Register"

image-20210519053606635

发现程序断下了

image-20210519053737679

在内存窗口中Ctrl+G 转到19F6F0这个地址(这个地址在调用MessageBoxA时 , 值指向了"failed"这个字符串)

随便选几行地址 , 右键 ,下个内存写入断点 , F9运行

image-20210519054447344

发现程序断下 , 但有点不对劲 , 继续F9 , 直到地址对劲为止[滑稽]

image-20210519054601755

一直F9发现 程序跑起来了 , 没有断下 , 静静等待 , 直到他断下为止  , 当前05点48分 , 这可能要跑几分钟 ,(可能是我下断点的姿势有问题 , 但是 , 有个十分明显的问题 , 就是OD跟踪的太慢了! , 换个调试器肯定是嗖嗖嗖嗖的)

image-20210519054722029

在程序跑起来的途中 , 可以在堆栈发现程序调用GetDlgItemTextA获取了编辑框内容

image-20210519055150577

05点52分 , 程序终于再次断下 , 继续一路F9!

image-20210519055248088

在4012BF , 按F9之后 , 程序跑飞了 , 下个断点 , 重新来

image-20210519055341382

这次下个硬件访问断点 , 继续F9

image-20210519055452739

发现在43F879跑飞 , 重新按下F2在这个地址 , 这次 下个内存写入断点

image-20210519055547470

image-20210519055732848

重新注册 , 按下F9 , 发现程序跑到了 443CCB , 出现错误提示了!!image-20210519055806918

OD右键分析image-20210519055845781

发现 443349这个地址 , 跳到了错误代码(failed)

image-20210519055914286

改成NOP , 重新测试~~

image-20210519055941415

OHHHHHHHHHHHH~~~~

image-20210519060014229

试试 , 官方提供的Key ,提示和这个一样不一样 , 发现一样~~~

时间: 06点01分

image-20210519060136607

免费评分

参与人数 7吾爱币 +5 热心值 +6 收起 理由
Captain030 + 1 很强
yan182 + 1 + 1 我很赞同!
屑京宝 + 1 热心回复!
FuSu_ChunQiu + 1 + 1 热心回复!
MYC_OvO + 1 我很赞同!
azcolf + 1 + 1 热心回复!
woyucheng + 1 + 1 谢谢@Thanks!

查看全部评分

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

lichunfeng 发表于 2021-5-20 20:05
其实你这弄得繁琐了,这玩意算法有点复杂,爆破很简单,下GetDlgItem断点,获取到输入的数据后,硬件数据访问断点即可到达验证函数,函数返回1即可验证成功。。另外说一点,这玩意貌似是写dll到内存,抹去pe头,所以关键点应是dll,exe花指令只是障眼法。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
成熟的美羊羊 + 1 + 1 感谢大佬的指点+1

查看全部评分

 楼主| 成熟的美羊羊 发表于 2021-5-20 21:55
本帖最后由 成熟的美羊羊 于 2021-5-20 22:24 编辑
lichunfeng 发表于 2021-5-20 20:05
其实你这弄得繁琐了,这玩意算法有点复杂,爆破很简单,下GetDlgItem断点,获取到输入的数据后,硬件数据访 ...

函数返回1 , 这个返回值不敢乱搞[滑稽] , 这样一路跟踪哪个地址调用了MessageBoxA , 看到了cmp AL ,1 这条指令,  我才敢改函数的返回值[滑稽] , 不过这样确实快速+1
这个Dll , 确实没有发现 膜拜大佬+1
byh3025 发表于 2021-5-19 06:49
花指令 难道你不知道od有个去花指令的插件吗?
jy04468108 发表于 2021-5-19 08:42
byh3025 发表于 2021-5-19 06:49
花指令 难道你不知道od有个去花指令的插件吗?

不知道x32dbg有没有。
lifz888 发表于 2021-5-19 08:44
非常好的实习资料,支持分享
wk6663999 发表于 2021-5-19 09:00
厉害了楼主!学习了!
小高69 发表于 2021-5-19 09:09
非常详细呀。希望能有更多的作品,一起学习一起进步。
蜉蝣SK 发表于 2021-5-19 10:00
学习了感谢分享
byh3025 发表于 2021-5-19 11:05
jy04468108 发表于 2021-5-19 08:42
不知道x32dbg有没有。

尴尬了,用OD的插件没能去除所谓的花指令
eeyou 发表于 2021-5-19 13:10
byh3025 发表于 2021-5-19 11:05
尴尬了,用OD的插件没能去除所谓的花指令

那大佬要研究下,看看为啥会这样
良心坏了 发表于 2021-5-19 14:06
学习学习!~~        但是感觉挺复杂的。       不是灌水!~~~~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-16 05:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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