pingpong
刚刚过去的BCTF-2017有一道Mobile逆向题,下面放出我的解题思路
题目链接: https://pan.baidu.com/s/1boUKogv 密码: 9b52
拿到题目用JEB打开
得到两个比较有用的函数
public void onClick(View arg7) {
if(MainActivity.this.tt % 2 == 1) {
MainActivity.this.p = 0;
MainActivity.this.num = 0;
MainActivity.this.tt = MainActivity.this.ttt;
}
--MainActivity.this.tt;
MainActivity.this.p = MainActivity.this.ping(MainActivity.this.p, MainActivity.this.num);
++MainActivity.this.num;
if(MainActivity.this.num >= 7) {
MainActivity.this.num = 0;
}
View v0 = MainActivity.this.findViewById(2131427414);
((TextView)v0).setText("PING");
if(MainActivity.this.tt == 0) {
((TextView)v0).setText("FLAG: BCTF{MagicNum" + Integer.toString(MainActivity.this.p) + "}");

本文介绍了在BCTF-2017中的一道Mobile逆向题目,涉及对pingpong函数的分析。通过使用JEB,作者发现需要执行大量ping和pong操作来获取flag。由于代码被O-LLVM混淆,作者选择编写apk复用so文件,并详细说明了如何处理sleep函数以避免影响。最终,通过修改代码并运行,得到了flag:BCTF{MagicNum4500009}。
最低0.47元/天 解锁文章
376

被折叠的 条评论
为什么被折叠?



