祥云杯apk1

拖入jeb分析,分析主要调用的是check函数而不是check1函数
祥云杯apk1
ida打开so文件,发现程序直接有check1函数,其中sub_8294函数是check函数,其为JNI_OnLoad中的registerNatives注册的
祥云杯apk1
汇编可以找到check函数
祥云杯apk1
祥云杯apk1
分析关键函数代码,可以发现程序对我们的输入长度进行了判断是否是22位,然后对其进行了hex转化,接着rc4加密,密钥是flag,最后用DES加密,密钥还是flag,最后和明文0x99EDA1D941316EEA进行对比。要注意是的rc4生成时用到了crc校验,那么可以用动态调试去解密rc4。

#-*- coding:utf-8   
from numpy import*
from Crypto.Cipher import DES
from Crypto.Cipher import ARC4
key='666C6167'
des = DES.new(key, DES.MODE_ECB)


cipher1='99EDA1D941316EEA'.decode('hex')
plain1=des.decrypt(cipher1)


print(plain1.encode('hex'))
#求出des解密明文

#动态调试解出rc4密文,即为flag
#flag{76952041E276E2BF}
上一篇:常见的几种加密算法及python实现


下一篇:前端DES加密、base64编码,后端DES解密、base64解码