RElec4
组长 | 组员 | 组员 |
---|---|---|
E41714007 | E41714001 | E41714020 |
1 question 1
1.1 题目
1、(一定要看)阅读
https://www.pediy.com/kssd/pediy08/pediy8-289.htm
https://www.cnblogs.com/daihuiquan/archive/2013/02/14/2911285.html
https://www.freebuf.com/column/157183.html
1.2 解答
- 第一个链接打不开;
- .NET CLR是堆叠式虚拟机器(Stack-Based VM),它的指令集(Instruction Set)都是采用堆栈运算的方式:执行时的数据都是先放在堆叠中,再进行计算。
.NET CLR 有超过220个指令,但是有些命令使用相同的opcode,所以opcode的数目比指令数略少。
特别注意,.NET的opcode长度并不固定,大部分的opcode长度是1 byte,少部分是2byte。
这篇文章以一个i+j+k的例子,让我们了解了堆叠式VM的运作原理,并对.NET IL(Intermediate Language)有最基本的领略。 - 这篇文章介绍了软件逆向的定义、分类、步骤、工具、主要应用,软件开发基础知识、常见的汇编指令、寄存器以及堆栈的相关知识。
2 question 2
2.1 题目
2、(一定要看)阅读
http://www.vuln.cn/7115
http://www.vuln.cn/7117
http://www.vuln.cn/7116
http://www.vuln.cn/7118
2.2 解答
本文中介绍了Java类中不同的方法进行反编译产生的JVM字节码文件的过程,通过对反编译产生的代码的解读,阐述了Java反编译出的JVM字节码文件在逆向时的优势:文件快速粗糙的打补丁任务,类文件不需要重新编译反编译的结果;分析混淆代码;创建独立的混淆器等等。
3 question 3
3.1 题目
3、浏览 JVM指令助记符
3.2 解答
JVM指令助记符及对应注记符的意义
4 question 4
4.1 题目
4、阅读
4.2 解答
本文是一道python打包的逆向题目的具体分析过程。
- 在预处理时分析文件是什么语言写的,将.pyc文件反向后进行源代码剖析
- 修改程序自身的Bug(由VC运行库的压缩引发的bug,导致点击运行.exe文件会提示无法运行);
- 找到关键字符串“
Congratulations
”通过X反查使用点确定使用位置,按F5直接查看C代码并分析代码段的主要功能,最终获得login.exe文件的password。
5 question 5
5.1 题目
5、cipher.jpg
hint:shift+6
5.2 解答
先根据被加密图像的首部和正确的jpg图像的首部比较,得出加密密钥;接着使用密钥解密整个文件。
源代码:
//pre4.c
#define _CRT_SECURE_NO_W