0
点赞
收藏
分享

微信扫一扫

[安卓逆向]安卓逆向-一次简单的静态分析


@Author:Y4tacker

@Time:2021/03/29

文章目录

  • ​​安卓逆向-一次简单的静态分析​​

安卓逆向-一次简单的静态分析

首先尝试安装apk发现报错应用安装失败,之后尝试在010editor中查看dex文件头,发现没有问题,既然如此那只有一个解释了,可能是APK签名校验未通过,我直接把apk拖入andriod killer当中,成功反编译,之后点击编译生成签名的APK文件

首先静态分析,启动APK,发现要连续点击87654321次才行,这个简单,第一层页面自然是在Oncreate函数创建

@SuppressLint({"UseValueOf"})
protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(2130903040);
this.totalMyTotalNumber = new Integer(87654321);
this.totalNumber = ((TextView)findViewById(2131099648));
this.totalNumber.setText(this.totalMyTotalNumber.toString());
this.NowNumber = ((TextView)findViewById(2131099650));
this.button_add = ((Button)findViewById(2131099652));
this.button_add.setOnClickListener(this);
this.text_view = ((TextView)findViewById(2131099654));
}

在smili当中将​​0x5397fb1​​​改为​​0x1​​即可实现只需点击一次即可,之后弹出说离成功只有一步之遥

[安卓逆向]安卓逆向-一次简单的静态分析_安卓逆向

有个细节的地方是发现这个窗口是通过新建弹窗实现的,在代码里面也能看到,

[安卓逆向]安卓逆向-一次简单的静态分析_安卓逆向_02

并且还给了一个​​andriod​​的值

因此我们点击返回,发现了一个True flag

[安卓逆向]安卓逆向-一次简单的静态分析_bundle_03

当然从代码当中也能看出

[安卓逆向]安卓逆向-一次简单的静态分析_安卓逆向_04

我们继续从代码跟踪这一串神秘字符,在success.java当中

[安卓逆向]安卓逆向-一次简单的静态分析_安卓逆向_05

再看看check函数,简简单单的用Java实现的SHA-1加密仅此而已

private String check(String paramString)
{
try
{
this.sysytemDigest = MessageDigest.getInstance("SHA-1");
this.sysytemDigest.reset();
this.sysytemDigest.update(paramString.getBytes());
return bytesToString(this.sysytemDigest.digest());
}
catch (NoSuchAlgorithmException localNoSuchAlgorithmException)
{
for (;;)
{
localNoSuchAlgorithmException.printStackTrace();
}
}
}

因此我们只需要获得​​this.intent.getStringExtra("data")​​这里面的值即可,我们知道

在当前Activity1使用startActvity(intent)或者startActivityForResult(intent, code)方法跳转到另一个Activity2之前,如果要传递数据给Activity2,则应执行:intent.putExtra(“String str1”, “String Key1”)或intent.putExtra(“Int str1”, “Int Key1”)

因此,我们在MainActivity当中寻找

[安卓逆向]安卓逆向-一次简单的静态分析_bundle_06

即可得到flag为​​android​


举报

相关推荐

0 条评论