ISCC2024之RE
迷失之门
分析
定位到主函数发现有四个字符串用于flag字符的替换
主加密区域
利用flag与key字符串的差值作为选择替换字符的索引
最终验证区域
结果值为:70,83,66,66,104,75,67,113,79,82,111,89,104,119,120,98,111,90,71,82,75,100,70,70,121,81,54
wp
由于每次加密都是相互独立的,所以可以直接对加密函数进行爆破然后进行判断选择
1 | #include"stdio.h" |
CrypticConundrum
分析
将文件放入exeinfo检查后发现有upx壳,使用upx -d进行脱壳
反编译发现主要加密函数为mix和Encruption
有趣的是进入mix后发现它对字符串先进行加密后又进行解密,只是改变了Str的值
所以主要加密区域为Encryption函数
NewEncryption里对函数进行了与密钥的运算然后交换了字符串位置,而后在这个截图函数中又把位置交换了回来,所以不理解写了很多没意义的运算。。闲的吗。然后将图中运算倒着写一遍
wp
1 | #include"stdio.h" |
Badcode
分析
函数的加密逻辑很容易看出来,先对输入进行长度判断,然后进行奇偶运算和利用随机数产生的密钥进行加密,最后对结果进行xxtea加密
随机数和xxtea密钥可以通过动调得到
wp
1 | #include"stdio.h" |
DLLCode
分析
通过动调发现将输入字符串划分为了两部分,前一部分进入enocode加密,后一部分使用给定数组作为索引打乱顺序。
通过分析,encode函数中以ISCC为密钥对每个字符进行异或
wp
1 | #include<string.h> |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 wowonwall!
评论