Jarvis OJ 逆向工程WP(一边做一边更新)

RE

1. androideasy

这题我做了一个比较详细(呆)的wp,给个链接:https://blog.csdn.net/qq_42192672/article/details/82528782

2. DD - Android Easy

怎么反编译成JAVA代码的过程第一题已经给出了,就不多做赘述了

分析一下,首先定义一个arryOfByte1数组,每个元素是p数组与q数组每个元素的异或结果,数组长度与p数组长度相等

接下来其实就是构建一个字符串,上脚本

3. stheasy

这题拖到IDA中找main函数,可以看到和flag相关的解释字符串

基本上就是直接输入一个字符串flag,然后操作一波看是否和答案相等,我们换成伪C代码分析

基本也就是两个sub函数在操作,跟进去分析,我自己是选择先看第二个函数,要是答案只和第二个函数有关,那第一个我就不看了

可以看到输入一个字符串,长度是29的话进行变化,否则不变,因为函数的值最后必须返回1,才会输出flag is right,所以必须要在这个函数中执行return 1这个语句,从而直接将1返还给主函数,否则肯定最后会执行return 0

如何才能return 1呢,初步看下来就是字符串s的前28个字符要满足while语句中的那个式子,这里的3u是unsigned int类型,那就是3,接下来我们先看8049B15这块,把里面的每个元素都除以3再减去2

然后s字符串每个字符应该等于8049AE0字符串中对应的不同字符(对应的位数就是刚才求得)

上脚本

OK啦

4. Classical Crackme

题目上说FLAG就是注册码

先把文件尾改成rar,然后解压,可以得到一个exe文件

本来打算用OD找函数断点的,但是打不开,只好拖到IDA了

里面其实挺乱的,什么函数识别的名字都奇奇怪怪,还好不多,慢慢找,找到了这里,看到注册失败什么的,基本能判断这里可能是主函数,注册码应该是现成的,因为找不到操作代码

你找到注册码了么,那个东西长得不像FLAG,base64解密

5.

猜你喜欢

转载自blog.csdn.net/qq_42192672/article/details/82528615