返回首页

微信公众号

1. 2016年 第29题
设置弹幕颜色
设置弹幕类型
0:00 / 0:00
速度
显示弹幕
海量弹幕
弹幕透明度
0.5
0.75
正常
1.25
1.5
2
[x]
Player version
Player FPS
Video type
Video url
Video resolution
Video duration
视频加载失败
课件


大家好,我是胡一米。这期视频是关于2016年看雪CTF第29题解题资料。

一、简介

1.1 录制说明

视频是基于其他大佬文字Writeup录制的,所以在视频操作之前就已知了该题中的各种坑,如反调试等,所以不再演示踩坑过程。

1.2 录制参考

第29题主要参看了HighHand和HHHso的Writeup,链接如下:

HighHand:

https://bbs.pediy.com/thread-214953.htm

HHHso:

https://bbs.pediy.com/thread-214911.htm

还有部分其他人的Writeup,链接如下:

yber:

https://bbs.pediy.com/thread-214949.htm

风间仁:

https://bbs.pediy.com/thread-214896.htm

Quizow:

https://bbs.pediy.com/thread-214918.htm

1.3 内容简介

在本期中,主要讨论4个问题。这4个问题可能与最终的Key没有太大的联系,但题目中既然出现了,还是说一说。此4个问题分别是:

a. CM中的查找函数的过程

b. CM中的俄罗斯方块游戏

c. CM中的各个验证步骤

d. 穷举得到最终的Key

二、视频操作

2.1 静态分析定位关键点

结合其他大佬的分析过程,可以直接定位到关键点。

a. 查找函数的过程

b. patch反调试

c. 俄罗斯方块

d. 各个验证步骤

typedef struct _IMAGE_EXPORT_DIRECTORY {

    DWORD   Characteristics;

    DWORD   TimeDateStamp;

      WORD    MajorVersion;

    WORD    MinorVersion;

    WORD   Name;

    DWORD   Base;

      DWORD   NumberOfFunctions;

    DWORD   NumberOfNames;

    DWORD   AddressOfFunctions;     // RVA from base of image

      DWORD   AddressOfNames;         // RVA from base of image, not FOA

      DWORD   AddressOfNameOrdinals;  // RVA from base of image

} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;

+0x18 NumberOfNames ;

+0x20 AddressOfNames;  

401069 jz short loc_401072 >> jmp

401505 jz short loc_40150E >> jmp

401847 jz short loc_401850 >> jmp

????

????

????

????

****

*  

*  

*  

*  

8位:x7 x6 x5 x4  x3 x2 x1 x0

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

kahuSKey

条件一:0x325 < 0x3D0

条件二:int (x7 x6 x5 x4 ^ 0x66) +int( x3 x2 x1 x0 ^ 0x66) = 0x32113442

条件三:push 004032b5

2.2 动态调试其加密过程

通过动态调试,理解程序加解密过程。

2.3 穷举验证码

使用visual studio,穷举验证码。这里直接使用HighHand大佬贴出的代码。

(无进位,不溢出)

三、小结

题目很好。

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册