逆向工程实验——pre4(IL、JVM指令、图片解密)

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()

运行结果:
在这里插入图片描述
在这里插入图片描述

成功复原图片:
在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值