从 CNSS 偷来的 SMC
最早接触SMC(Self Modify Code)这个词语是在看《加密与解密》的时候看的。我印象中碰到的第一个SMC的题目是第二届全国中学生网络安全竞赛线上赛的一个maze题,它smc的内容是地图……那个题目比较简单,导致我认为smc很简单……然后我在今年的SWUPCTF里面被很很打脸,第一个smc直接不会。
这个题的smc感觉还是比较简单的(bushi,但是我一开始没做出来是因为我被swup的那个题目给影响了,直接全局找vm函数,在函数表里面没有找到,又往main函数前面手动查找,但是也没有找到,就不会了……直到前两天碰见rx神,谈到这个题,他说:垃圾bb,你知道什么是NX(堆栈不可执行)保护么????我留着屈辱的泪水,终于明白了。这个题的text有修改权限,不需要vm函数来修改权限。那么我在main函数里面找了找,终于找到了smc函数:

在main函数里面可以看到三个参数,写一下ida_python脚本(嫖RX的:
1 | from ida_bytes import * |

好了,知道了……maze题,扣迷宫,手动走:


ByteCTF 2020 AWD TikTokAdmin 简单花指令
这个题只是要求去花嘛~~,那直接在问题窗口里面找花就好了:

两处花指令都是十分简单的那种
1 | je loc_8125+1 |
直接patch一下,然后p一下就好了。
attachment
上周的第三题那个C艹艹逆向,思路很简单,但是那么多dll,反汇编哪一个???而且怎们知道是
这个事件里面……
思路很简单,把“DD01903921EA24941C26A48F2CEC24E0BB0E8CC7”SHA1解密:1001,再md5加密:“b8c37e33defde51cf91e1e03e51657da”,然后再跟进md5那个加密函数:
好家伙,取20位……BJDCTF{b8c37e33defde51cf91e}
但还是最前面的两个问题很难受……不太懂
PS:
那两个问题RX解答了,他的专业回复是这样的:看这里:Unity - Manual: Assembly definitions (unity3d.com)




