TA的每日心情 | 难过 2023-6-30 13:24 |
|---|
签到天数: 40 天 [LV.5]常住居民I
|
比较近趁上课之余,刷了一下CTF()不好用的CE,言外之意就是说这道题用CE不好做,这里先分享一下上其他大佬的解题方式:539985569 游戏基址的最新消息可以到我们平台网站了解一下,也可以咨询客服人员进行详细的解答!
下面是我的解题方式:1、先打开程序,观察双击程序,出现一个对话框之后是主界面,点击可以是值增加1
这里我的思路:1、爆破:写一个程序,模拟点击000次2、尝试修改值,直接修改到9999,再次操作这里,我果断选择第二个方式(其首个试了一下,比较内存了,CPU也一下子就飚上去了)首先,查看有没有壳(一般都是壳的,但是还是查看一下)如图:程序是VB写的,壳,
2、CE附加,尝试查看变量这里我尝试搜索精确数值,但是发现精确值收缩到比较后是一个死胡同,因为有时候是可以查找到这些值,但更多时候,这些值可能只是那么几个值才产生变动,基本上从精确值这里切入比较难,而且即使找到了值,并且进行了修改,在这次显示值是修改了的,但是到了下一次时,值也会自动校正。所以我尝试搜索未知初始值,并且通过不断变动值,缩小搜索范围,比较终查到以下数据:分别对这些数据进行改写查看,获得以下代码段
数据1:
0D41-8B-,[]
0D43-56-
0D44-DD5E34-[+34]
0D47-DFE0-
0D49-A80D-,0D
数据2:
77E82C6C-85C0-,
77E82C6E-0F8489C000-RUWCS+7F
77E82C74-FF87FC000000-[+000000FC]
77E82C7A-C645E6[-1A],
77E82C7E-8B75,[+]
77E835C0-,
77E83F84BC00-RUWCS+A2
77E83D-FF83FC000000-[+000000FC]
77E833-F74348000000-[+48],60000000
77E83A-0F85F70000-RPTFH+1DC
数据3:
77E83B-75-RQPC+7E9
77E83D-0000-,0000
77E832-8946[+],
77E835-397D90-[-70],
77E838-0F859E0000-LULL+0D
77E82CDB-83F9,
77E82CDE-72RQPC+360
77E82CE0-8340FE-[+],-
77E82CE4-F646[+],
77E82CE8-0F859FEA00-TDC+652
数据4:
77E82F3BD8-,
77E82F0F852A7A00-RUBS+DBE9
77E82F0F-89[],
77E82F894A[+],
77E82F-89[],
数据5:
74-F2-,
742B-2BC2-,
742D-8937-[],
742F-8947[+],
74-8D7F-,[+*2]
数据6:
742B-2BC2-,
742D-8937-[],
742F-8947[+],
74-8D7F-,[+*2]
74-8D80-,[+*4]
数据7:
779B9962-89448FF8-[+*4-],
779B9966-8B448EFC-,[+*4-]
779B996A-89448FFC-[+*4-],
779B996E-8D8D00000000-,[*4+00000000]
779B9975-F0-,
数据8:
779B9962-89448FF8-[+*4-],
779B9966-8B448EFC-,[+*4-]
779B996A-89448FFC-[+*4-],
779B996E-8D8D00000000-,[*4+00000000]
779B9975-F0-,
观察上面的数据,可以发现数据5和数据6是同一段代码,数据7和数据8也是同一段代码,所以我选择充这里作为切入点(其其他代码也是可以的,只是我直觉这里应该比较好分析)3、OD附加(工具:32),并跳转到选定目标地址:42F在此处下断点,并且跟进,同时查看堆栈和寄存器数值变化在此处下断,发现数值是在当前CALL上层修改的,返回到上层代码:这里代码看了一下,发现也有很多下一个的数值,暂时没看出啥,所以返回到函数头部,再次断下,从头不看看哪里数值是比较可疑的查看EDI+4的数据在此处进行硬件写入断点,再次点击按钮与之前类似,这里的数据也是上层计算得出的,再次向上层回溯,这里省略部分,因为之后的操作和这里类似,上上层回溯,知道跳转到主模块地址处,即以000开始的地址,一般在此处可能会进行值的判断,弹窗之类的在这里附近查看代码,也可以断下后调试,查看执行过程,我这里使用绘制功能直观展示它的执行流程尝试修改代码:修改后的效果:出现了一个对话框,这个字符串应该就是
高高兴兴去填写答案,打脸来的太,答案是错误的,在分析一下字符串DZMURP8NJLPX看起来图像B64加密的,试一下解密,呵呵,打脸虽迟但到然后冥思苦想,突然顿悟(其是看了别的博客思路)居然是B58,。。。。。OK,解码,获取提交。
PS:如果你使用的OD,那直接搜索字符串就可以找到这条数据,当然,也是可以搜索到的,但是与之一起的还有N多条其他字符串
PS2:这里是我自己分析的这个程序的算法代码的位置,自己没太懂,求大佬讲解一下这里算法现
75CCE8|8BF8|,|
75CCEA|33C0|,|=0
75CCEC|83C7|,|
75CCEF|40||++
75CCF0|F645A8F0|:[-58],F0|
75CCF4|0F840000|35CC|
75CCFA|53||
75CCFB|6A|8|
75CCFD|5E||=8
75CCFE|6A||
75CC00|8D5445AC|,:[+*2-54]|拿到缓冲区地址
75CC|5B||=
75CC|8A4C35A0|,:[+-60]|循环
75CC|8AC1|,|是当前数据的前两位
75CC0B|C0E8|,4|=1
75CC0E|66:0FB6C0|,|
75CC|66:C3|,|计算每一位=
75CC|66:89|:[],|写到缓冲区
75CC|80EF|,F|+F
75CC1B|42||++移到缓冲区下一位
75CC1C|66:0FB6C1|,|
75CC|42||
75CC|66:C3|,|
75CC|66:89|:[],|
75CC|42||
75CC|42||
75CC|4E||
75CC2A|79D9|35CC| |
|