《攻防世界》MOBILE--Ph0en1x-100
本帖最后由 HNHuangJingYU 于 2021-9-30 10:18 编辑1.首先将Ph0en1x-100.apk拖入jeb,关键函数:
2.就是将getFlag()这个native函数返回的字符串加密,和我们输入的字符串经过encrpt()native函数进行加密对比,嗯,思路出来了就很简单了首先用frida对getFlag()函数进行Hook得到返回值,脚本如下:Java.perform(function(){
Interceptor.attach(Module.findExportByName("libphcm.so", "Java_com_ph0en1x_android_1crackme_MainActivity_encrypt"), {
onEnter: function (args) {
var String_java = Java.use('java.lang.String');
var args_3 = Java.cast(args, String_java); //打印JNI字符串参数
console.log("参数为:", args_3);
// //打印int
// console.log("args int value : " + args.toInt32()); //打印JNI int参数
// //修改int
// args = ptr(88);
},
onLeave: function (retval) {
//修改返回值
var String_java = Java.use('java.lang.String');
var result = Java.cast(retval, String_java); //打印JNI字符串参数
console.log("encrypt返回值:", result);
// retval.replace(999);
}
});
//
Interceptor.attach(Module.findExportByName("libphcm.so", "Java_com_ph0en1x_android_1crackme_MainActivity_getFlag"), {
onEnter: function (args) {
},
onLeave: function (retval) {
//修改返回值
var String_java = Java.use('java.lang.String');
var result = Java.cast(retval, String_java); //打印JNI字符串参数
console.log("getFlag返回值:{", result+"}");
console.log("=================end================");
}
});
});3.得到getFlag返回值: ek`fz@q2^x/t^fn0mF^6/^rb`qanqntfg^E`hq|然后再经过java层的getSecret()进行加密就得到了这个字符串:ce8fb3a6438ee5bc323da995e425545e但是我发现这个getSecret()也太难逆向了吧是通过消息摘要进行加密,好像还是不可逆的,果断放弃进而猜测一波,但是发现两个字符串对比的值都是通过getSecret()进行加密,那么是不是只要让getFlag() == encrypt(this.etFlag.getText().toString())就可以了?所以只要让我们输入的字符串进过encrypt()后等于 ek`fz@q2^x/t^fn0mF^6/^rb`qanqntfg^E`hq|就可以了逆向还原的encrypt()如下:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char v4;// r4
char *i;// r5
strcpy(v4, " ek`fz@q2^x/t^fn0mF^6/^rb`qanqntfg^E`hq|");
for (i = v4; i - v4 < strlen(v4); ++i)
cout << ++*i;
return 0;
}
输出结果 :!flag{Ar3_y0u_go1nG_70_scarborough_Fair} 最后的那个解密函数是什么意思,v4 还没有初始化,在我的电脑上也跑不出来。 本帖最后由 HNHuangJingYU 于 2021-9-30 10:16 编辑
无名氏wyw 发表于 2021-9-30 06:56
最后的那个解密函数是什么意思,v4 还没有初始化,在我的电脑上也跑不出来。
之前写的第一个版本测试后,忘记改了,我重新上传了 本帖最后由 无名氏wyw 于 2021-9-30 17:31 编辑
HNHuangJingYU 发表于 2021-9-30 09:11
之前写的第一个版本测试后,忘记改了,我重新上传了
好的,话说为什么strcpy之后字符串会改变?
页:
[1]