首页 > 其他分享 >复现CISCN Reverse的收获

复现CISCN Reverse的收获

时间:2024-06-02 17:55:22浏览次数:16  
标签:13 ch 加密 Reverse SecretKeySpec DES 复现 key CISCN

androidso_ez

参考文章:https://www.cnblogs.com/sK07XdAy/p/18203747

静态分析

1、当有时候代码很长的时候,想自己猜猜加密含义时,可喂给chatgpt一试
2、Rot13,以前也经常见,可就是没有仔细看看,虽然很简单,但可以了解了解偏移量,喂给Cyberchef会更省事些
Rot13,顾名思义一般情况下偏移13,如下

//ch为大写字母
ch=(ch-'A'+13)%26+'A'
//ch为小写字母
ch=(ch='a'+13)%26+'a'

当代码块中的13改为16,即为偏移16,对于偏移13:chrot13(rot13(ch))而对于偏移16:chrot16(rot10(ch))
3、re真是一半靠蒙一半靠猜啊,猜测jiejie函数为Rc4加密,猜测Rc4加密后以此异或0x03,0x89,0x33,0xB8,0x54,0x0C,0x20,0x6A
img
4、对于源代码,其中有key算法为AES,加密却是DES的矛盾,查阅资料后有以下分析:

public SecretKeySpec​(byte[] key, String algorithm)
从给定的字节数组构造一个密钥。此构造函数不检查给定的字节是否确实指定了指定算法的密钥。例如,如果算法是DES,则此构造函数不检查key是否为8字节长,并且也不检查弱键或半弱键。
这句话从参考文章中偷的,也没看太懂
img
就虽然SecretKeySpec key = new SecretKeySpec(str2, "AES");但由于SecretKeySpec()函数原因,加密Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");依旧按照DES加密。

动态分析

asm_re

参考文章:https://blog.csdn.net/Myon5/article/details/139046502
1、处理ida跑出来的汇编代码时,如果给了下图的信息,从图中可以获取的主要信息
img

Processor       : ARM   //ARM架构
Byte sex        : Little endian     //小端序
CODE64      //64位文件

2、如果给了机械码,我们可以把文本文件喂给gpt,输出机械码
img
之后到010editor中新建十六进制文件,ctrl+shift+v复制进去,之后按照给定的格式用ida打开
img
反编译即可

标签:13,ch,加密,Reverse,SecretKeySpec,DES,复现,key,CISCN
From: https://www.cnblogs.com/Un1corn/p/18216504

相关文章