首页
社区
课程
招聘
[原创]2019看雪CTF晋级赛Q1-第五题writeup
发表于: 2019-3-17 01:35 3273

[原创]2019看雪CTF晋级赛Q1-第五题writeup

2019-3-17 01:35
3273

题目描述为考查密码学知识,猜测题目可能包含一些密码算法。用PEiD的插件Krypto ANALyzer扫描程序,结果没发现有什么加密算法。

程序为典型的Win32 GUI程序,程序创建了一个对话框,通过对话框的消息处理函数可以定位到关键函数的地址为0x402652。

根据后面的判断v38必须为0,可以得到输入的长度必须大于等于12,且第0位和第1位不能同时为A,第5位和第11位必须同时为V,输入必须为可见字符。

程序先将输入的第5位和第11位给去除了,然后和进行了base64解码(表被替换了)再编码的结果进行比较,如果相等才会进入4024e1这个函数,而402A90这个函数是解密输出的字符串用的,通过调试,可以得到v7必须为2,才会有如下所示提示弹出。

函数4024e1的参数是base64解码后的数据。

通过动态调试发现,程序中有如下大数结构
struct bignum{
int flag;(标识正负,1为正)
int length;
int data[length];
}
函数401485的作用是比较2个大数的大小,函数4020F1是求A的B次方模C。
故函数4024E1的作用就是求base64解码后的数据的83次方然后模0x41CD66ACC237B22681A18067
因此最后问题化简为了x**83mod0x41CD66ACC237B22681A18067=2,求x的值。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//