首页
社区
课程
招聘
[原创]看雪CTF 2017 第二题 lelfeiCM writeup
发表于: 2017-6-5 10:57 5253

[原创]看雪CTF 2017 第二题 lelfeiCM writeup

rxy 活跃值
1
2017-6-5 10:57
5253

所用工具:OD

说明:以下分析貌似只适用于key的长度为8位或9位,10位以上的处理好像不太一样,抱歉未深入研究。

key的长度为8到20位,全为数字,且不包含0。以图说明:


下面用伪代码表示,假设输入为key,对key进行如下运算(key2,key3为新变量)

key3需满足的条件为:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
支持
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
赞赏  CCkicker   +1.00 2017/06/06
最新回复 (3)
雪    币: 18
活跃值: (12)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
请问楼主,逆向汇编算法有什么技巧或注意事项?前两天绕晕在里面了。。真心求教,望不吝赐教,谢谢!!
2017-6-5 15:23
0
雪    币: 7270
活跃值: (3435)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
3
茻~ 请问楼主,逆向汇编算法有什么技巧或注意事项?前两天绕晕在里面了。。真心求教,望不吝赐教,谢谢!!
抱歉没及时答复你,因为我也是初学,不知道该怎么回答。我的方法就是一开始在OD中详细地一步一步跟踪,把看到的计算操作、关键地址都写下来,发现程序中频繁使用GetTickCount生成随机地址,但慢慢发下这些地址都不中重要,于是不再单步跟踪,只在运算处下断点,观察每一次运算的输入和输出,全部写下来后发现这些运算在宏观上其实就组成了给key乘9和乘以key自己这2个操作,剩下的就是去暴力破解了。笨办法,见笑了。
2017-6-7 15:33
0
雪    币: 18
活跃值: (12)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
rxy 抱歉没及时答复你,因为我也是初学,不知道该怎么回答。我的方法就是一开始在OD中详细地一步一步跟踪,把看到的计算操作、关键地址都写下来,发现程序中频繁使用GetTickCount生成随机地址,但慢慢发下 ...
这的确是一种很好的分析思路,谢谢分享!
2017-6-7 15:52
0
游客
登录 | 注册 方可回帖
返回
//