首页
社区
课程
招聘
[原创] 看雪CTF Q3题目 第八题:人妒英才 设计思路提交
2019-8-9 11:25 2895

[原创] 看雪CTF Q3题目 第八题:人妒英才 设计思路提交

2019-8-9 11:25
2895

参赛题目:CrackMe
题目答案:Kanxue_2019_Q3
详细的题目设计说明和破解思路以及其他需要说明的各个问题:

  1. 该题目假装是一个基于ECC椭圆加密求解的题目。之前发了一篇ECC椭圆加密的原理分析:https://bbs.pediy.com/thread-253672.htm,相信误导了不少解题朋友,在此给大家道歉,如果按照ECC解法做反而是做不出来的,具体解法在源码中。

  2. 题目说明:
    如果按照ECC解法:
    根据椭圆曲线的基本概念,首先给出了椭圆曲线Ep:Ep = y^2 = x^3 + 125*x 以及关键的参数:素域p=127,基点G=(11,4) 公钥K=(120,41)
    私钥在代码和新增的区段中都有说明,没有给出直接提示:
    图片描述
    私钥在源代码中的体现:
    图片描述
    一个简单的异或可以得到x=9
    而根据椭圆曲线定义

    公钥K = 基点G * 私钥k
    

    所以私钥=x=9

但实际上的变换操作为:
加密函数的源代码:
图片描述
图片描述
未做混淆,攻击方可以直接通过阅读IDA获取。

 

代码手动写了一个超级简单的反调试壳:
首先通过010Editor给程序新增加了一个区段,区段名顺便提示了私钥
图片描述

 

然后把程序原OEP更改到了新增的区段Offset处:
图片描述

 

使用x32dbg后,使用了:

mov byte ptr ss:[ebp-5],0
mov eax, dword ptr fs:[0x30]
mov al, byte ptr [eax + 2]
mov byte ptr [ebp - 5], al
movzx eax, byte ptr [ebp - 5]

几行简单的代码判断是否处于调试状态
如果处于调试状态,则设置两个循环跳转使得程序sleep。
如果未处于调试状态,则jmp到程序真实的OEP。
这里手动将一部分实际应用到的汇编代码拷贝了过来,起到一点干扰作用。
图片描述

 

输入判断:
最开始将用户输入的字符串传入的加密函数ECode得到了一个加密的字符串,将加密字符串的ASCII打印出来如下:
图片描述

 

保存该字符串的ASCII:
图片描述

 

然后将用户输入后的字符串加密后与该字符串进行比较:
图片描述

 

最后删除解密函数以及多余的打印信息build成exe进行手动加壳。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2019-9-25 10:35 被jux1a编辑 ,原因:
上传的附件:
收藏
点赞1
打赏
分享
最新回复 (4)
雪    币: 32410
活跃值: (18730)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2019-8-9 14:24
2
0
https://bbs.pediy.com/thread-253532.htm

方案1:      vii. 所提交的参与CrackMe运行的文件包括.exe.dll.sys等一起在不打包压缩的时总大小不超过1M。

文件体积大小超标了。方案2,可以不超过10M。
雪    币: 951
活跃值: (6718)
能力值: (RANK:462 )
在线值:
发帖
回帖
粉丝
jux1a 8 2019-8-9 14:53
3
0
kanxue https://bbs.pediy.com/thread-253532.htm 方案1: vii. 所提交的参与CrackMe运行的文件包括.exe.dll.sys等一起在不打包压缩的 ...
好的,我再修改一下。
雪    币: 951
活跃值: (6718)
能力值: (RANK:462 )
在线值:
发帖
回帖
粉丝
jux1a 8 2019-8-10 13:31
4
0
kanxue https://bbs.pediy.com/thread-253532.htm 方案1: vii. 所提交的参与CrackMe运行的文件包括.exe.dll.sys等一起在不打包压缩的 ...
您好,我重新上传了文件附件,修改了图文内容,辛苦再次审核。
雪    币: 951
活跃值: (6718)
能力值: (RANK:462 )
在线值:
发帖
回帖
粉丝
jux1a 8 2019-8-13 11:41
5
0
 
最后于 2019-8-13 13:33 被jux1a编辑 ,原因:
游客
登录 | 注册 方可回帖
返回