1、(一定要看)阅读
NET程序的破解(一):破解目标:Xenocode Fox 2006 Evaluation
https://www.pediy.com/kssd/pediy08/pediy8-289.htm
原本想在网上下Xenocode Fox 2006 Evaluation复现一下破解的过程,结果网上都是一些破解后的Xenocode Fox,没有2006原版,上官网也已经没有十多年前的版本,只有19年的版本了,所以这个只能了解了一下过程。
.NET中間語言(IL):
https://www.cnblogs.com/daihuiquan/archive/2013/02/14/2911285.html
逆向分析之常见的汇编指令:
https://www.freebuf.com/column/157183.html
2、(一定要看)阅读
逆向基础(十三) JAVA (一)
http://www.vuln.cn/7115
根据文章中的步骤,反编译.class文件,但是文中作者的代码似乎有问题,无法编译和运行。
于是我们将代码稍作修改,继续反编译:
逆向基础(十三) JAVA(二)
http://www.vuln.cn/7117
逆向基础(十三) JAVA(三)
http://www.vuln.cn/7116
逆向基础(十三) JAVA(四)
http://www.vuln.cn/7118
3、浏览 JVM指令助记符
可以写lab3的第一题
https://bbs.pediy.com/thread-15286.htm
4、阅读
python打包的逆向分析
https://www.52pojie.cn/thread-613029-1-1.html
5、cipher.jpg
hint:shift+6
先开始看到键盘上的shift+6对应的^键,但是不知道有什么用。
打开图片,发现无法打开。
图片无法打开肯定是头文件有问题,
果然头文件不对。
Jjpg图片的头文件是:FF D8 FF E0 00 10 4A 46 49 46 00 01,用16进制编辑器修改一下
然而还是不能打开:
后来突然想起来老师的提示的^异或,我又把87 8E CB F2 78 46 7E 54 31 10 34 13改成了FF D8 FF E0 00 10 4A 46 49 46 00 01,会不会是根据特定的密钥加密的?用python代码试一下:
源代码:
#所有jpg文件的文件头
jpg = 0xFFD8FFE000104A4649460001
#源文件的文件头
garden = 0x878ECBF278467E5431103413
#异或出的密钥
secretKey = hex(jpg ^ garden)
print(secretKey)
代码运行结果:
发现密钥是8位16进制数:78563412。
接下来重新修改整个图片:
源代码:
#py -3
#coding=utf-8
#以二进制打开图片
f = open('C:/Users/Legends/Desktop/The Garden of sinners.jpg','rb')
#以二进制打开解密后的图片
res = open('C:/Users/Legends/Desktop/cipher.jpg','wb')
i = 1
while i <= 0x6f8c:
# 每读入4字节作异或操作
t = int.from_bytes(f.read(4),byteorder='big') ^ 0x78563412
# 装换成二进制写入图片
res.write(t.to_bytes(4,byteorder='big'))
i += 1
f.close()
res.close()
运行结果:
成功复原图片: