2020春节红包 前三题Writeup
解题方法并不唯一,仅供参考。## 题目打包下载地址
(https://down.52pojie.cn/Challenge/Happy_New_Year_2020_Challenge.rar)
## 第一题 送分题
关注“吾爱破解论坛”微信公众号,回复指定字符串即可获得本题正确口令。
## 第二题 Windows 初级题
使用`PEiD`查壳,得知该程序是`UPX`壳,并修改了区段名。于是使用`OD`脱壳,再用`ImportREConstructor`修复IAT。
再次查壳,得到`Borland Delphi v3.0 *`。故使用`IDR`([爱盘下载地址](https://down.52pojie.cn/Tools/Disassemblers/IDR%20(Interactive%20Delphi%20Reconstructor).rar))进行分析。
查看窗体,定位到关键函数`TForm1.edtPwdChange`:
![](https://xhy-1252675344.cos.ap-beijing.myqcloud.com/imgs/52pojie-2020-1.png)
其中对输入字符串进行切片,然后分别进行md5计算,并与以下字符比较:
`E7EE5F4653E31955CACC7CD68E2A7839`
`ea6b2efbdd4255a9f1b3bbc6399b58f4`
`c8d46d341bea4fd5bff866a65ff8aea9`
反查md5并拼接即可得到`52pojie2019game`
输入进行校验,得到提示:
![](https://xhy-1252675344.cos.ap-beijing.myqcloud.com/imgs/52pojie-2020-2.png)
将该字符串回复到公众号即可获得本题正确口令。
## 第三题 Android 初级题
使用`AndroidKiller`反编译,打开`MainActivity.smali`,发现`checkFlag`和`onClick`方法被nativie化了。
于是使用`IDA`打开`libcrack_j2c.so`,定位到`onClick`方法,可以发现是通过JNI反射调用Java方法。由此可以大致分析出程序流程:
首先获取输入框文本,对长度进行判断,为30则调用`checkFlag`方法进行检查
在`checkFlag`方法中,定位到关键位置:
![](https://xhy-1252675344.cos.ap-beijing.myqcloud.com/imgs/52pojie-2020-3.png)
由此可知,安装并打开该APP后,输入30位长度的字符串,点击确定就会调用`equals`方法
于是使用`Frida`进行hook,打印出调用该方法的参数和实例内容,从而得到真码:
`ed61f6308c74bcf35c71729d4db24c`
将该字符串回复到公众号即可获得本题正确口令。
Frida脚本如下:
```js
if(Java.available)
{
Java.perform(function(){
var String= Java.use('java.lang.String');
String.equals.overload("java.lang.Object").implementation=function(obj){
console.log(this.toString());
console.log(obj);
return this.equals(obj);
}
});
}
```
## 此处应有分割线
祝各位身体健康,心想事成! 我一个文科生根本不会这些算法 很厉害,,我第二题会查壳,别的就不会了 呵呵 今天打开论坛才发现红包活动已经结束了,于是把早就写好的WP发上来。
仅供参考。
阿宇6080 发表于 2020-2-9 20:57
ashdiashfioasjfdsdfgfsg
你这回复明显是灌水啊,不怕违规吗? 只会送分题 “使用Androidkiller反编译,打开MainActivity.smali”,我就只能破解到这里的,面对安卓和JAVA,我完全外行。希望明年降低点难度...... 很厉害,学习学习 还是有点难度
页:
[1]
2