吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14119|回复: 30
收起左侧

[原创] 【JarvisOJ】软件密码破解(2)

  [复制链接]
whklhh 发表于 2017-12-10 02:24
本帖最后由 whklhh 于 2017-12-10 02:26 编辑

题目来源于JarvisOJ-软件密码破解(2),原题为CFF2016的re300
机制挺有意思的,分享一下

运行发现是个CUI程序,随便输入会进入死循环
拖入IDA反编译,主函数结构很简单:
  
很简单的接收,于是跟入查看关键函数check:

进行了一大堆进程操作,总结下来就是将输入的内容作为参数重新开启了一个子进程,然后等待它返回

由于调试事件会被最上层的调试器接收掉,所以父进程好像不太好接收到事件的消息了……
从这个角度上来看,动态调试就有点困难了

于是重新开启一个进程,加入参数进行调试
发现它在main的时候有一个判断,当有参数的时候就跳到另一个流程了
单步跟发现在这里有一个INT3会断下来交给父进程
  
那么很明显,父进程的WriteProcess就是在这里起作用的

将父进程的v22-v25写入003E1145,注意小端序哦
  
跟下来可以发现它与“elcome to EEF test!”进行逐字符异或,然后再将结果全部+1
最后通过OutputDebugString将结果传回父进程
然后父进程通过ReadProcessMemory接收,与硬编码进行比较

算法还是比较简单的,这个传递消息的子进程机制很有意思
写出注册机
[Python] 纯文本查看 复制代码
s = 0x2B5C5C25.to_bytes(4, "little") + 0x36195D2F.to_bytes(4, "little") + 0x7672642C.to_bytes(4, "little") + 0x524E6680.to_bytes(4, "little")
p = b"elcome to CFF test!"
for i in range(16):
    print(chr((s[i]-1)^p[i]), end='')

CTF_100_1.rar

27.29 KB, 下载次数: 44, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 11威望 +2 吾爱币 +19 热心值 +10 收起 理由
xliujiapeng + 1 + 1 谢谢@Thanks!
lbwb + 1 + 1 热心回复!
lyyl6116 + 1 + 1 热心回复!
lmeiz888 + 1 热心回复!
七个八个九个 + 1 + 1 热心回复!
永福牧羊人 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Poner + 2 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wy510000 + 1 + 1 热心回复!
sunnylds7 + 1 + 1 热心回复!
liphily + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
疯狂醉虎 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

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

yunfeng 发表于 2017-12-10 07:22
好文章,谢谢楼主分享
404607073 发表于 2017-12-10 07:29
疯狂醉虎 发表于 2017-12-10 08:19
tnndks 发表于 2017-12-10 09:35
学习下!谢谢无私的分享了
某些人 发表于 2017-12-10 09:46
谢谢分享。。。
lsch123 发表于 2017-12-10 13:30
楼主,一个字“牛”!
Eagle徐 发表于 2017-12-10 13:42
感谢楼主分享这么好的教程!
3683057 发表于 2017-12-10 14:25
再学习中 谢谢
linclon 发表于 2017-12-10 15:12
厉害厉害,感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 13:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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