首页
社区
课程
招聘
[原创]看雪CTF2017第8题
发表于: 2017-6-16 01:41 4409

[原创]看雪CTF2017第8题

2017-6-16 01:41
4409

1. TlsCallback

创建了6个线程, 前3个线程是负责smc解码的, 后3个线程没用 


线程1: 解码004025DC处的跳转及check1函数


线程2: 解码0040263C处的跳转及check2函数


线程3: 解码0040269C处的跳转及check3函数


2. 主流程

一个自定义的虚拟机


校验函数


检测代码改动


sn=base64_decode(sn)


sn的格式(共90位): (20位)--(39位)--(27位)


校验前20位

(sn1 xor abcdefg...) * 98765432109876543210123 == 1549780652036258484424751705102781884386113


校验中间39位

(sn2 xor abcdefg...) ^ 2 == 13095069099216326605010245808779535277211541324456558063162414338128147458401


检验后27位, sn3视为16进制

sn3 ^ 15691529100101820131 mod 114433688655117320765854989491151409201 == 71639176673360967005214790689576394595


sn3作为16进制转换的时候是有符号转换的, 所以导致>=80的值无法正常转换

这里只需要关心能产生0x00的值即可(有挺多个, 如0x89) 


3. 后27位计算


已知:

e = 15691529100101820131

n = 114433688655117320765854989491151409201

m = 71639176673360967005214790689576394595


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

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 19
活跃值: (128)
能力值: ( LV9,RANK:146 )
在线值:
发帖
回帖
粉丝
2
这么晚了,偷偷吃点翔,不会被发现吧
2018-6-9 01:44
0
游客
登录 | 注册 方可回帖
返回
//