目錄
0x01 Activity 跳转
跳转Activity
设置标识
生成apk测试
0x02 Androidmanifest.xml说明
如何设置最先启动?
测试
0x03 反编译
1. 丢Android Killer里。
2.找到关键代码
0x04 实战分析
样本
试玩
1.apk反编译
2.查看Androidmanifest.xml文件
3.尝试跳转
首頁 運維 安全 Android基礎逆向沒怎麼實現

Android基礎逆向沒怎麼實現

May 17, 2023 pm 08:22 PM
android

0x01 Activity 跳转

demo还是上一次的demo,这次我们更改一下Button逻辑,改成跳转。

建一个新的Activity

Android基礎逆向沒怎麼實現

跳转Activity

这里跳转到我们新建的Activity。
使用Intent进行跳转,Intent相当于一个载体。
具体代码如下:

        Intent i=new Intent(MainActivity.this,Main2Activity.class);        startActivity(i);
登入後複製


Android基礎逆向沒怎麼實現

设置标识


Android基礎逆向沒怎麼實現

生成apk测试


Android基礎逆向沒怎麼實現

0x02 Androidmanifest.xml说明

首先来看下Androidmanifest.xml的内容

<?xml  version="1.0" encoding="utf-8"?><manifest>    <application>        <activity>            <intent-filter>                <action></action>                <category></category>            </intent-filter>        </activity>        <activity></activity>    </application></manifest>
登入後複製

在这里我们可以看到有两个Activity。

如何设置最先启动?

这里有两个Activity,那么app是怎么识别那个是最先启动的Activity呢。
这里我们对比一下两个Activity的区别。
这是第一个Activity

 <activity>            <intent-filter>                <action></action>                <category></category>            </intent-filter>        </activity>
登入後複製

这个是我们的第二个Activity

  <activity></activity>
登入後複製

是不是区别很明显,一个有一大堆的内容,一个只有一句话。
所以我们的重点就是:

<intent-filter>                <action></action>                <category></category>            </intent-filter>
登入後複製

很容易就发现是因为这个所以才是最先启动的。
我们来做一个简单的测试。
我们把这个移动一下位置。
现在Androidmanifest,xml是这个样子。

                            <activity>            <intent-filter>                <action></action>                <category></category>            </intent-filter>        </activity>    
登入後複製

测试

现在我们生成apk。
Android基礎逆向沒怎麼實現

我们发现,点开之后发现已经不是之前的Activity,而是我们之后自己添加的Activity。
基于这个思路,我们可以想嘛,如果有第三方的Activity注入,我们是不是可以通过改变启动的Activity从而避开一些验证问题。
恩,之后通过实战来进行一个测试。

0x03 反编译

有到了学习smali的时候到了。可能很无聊吧,但是写的人却是很有兴趣呢。
废话不说,开始吧。

1. 丢Android Killer里。

2.找到关键代码

恩。在$2里。

.method public onClick(Landroid/view/View;)V    .locals 3    .param p1, "v"    # Landroid/view/View;    .prologue
    .line 33    new-instance v0, Landroid/content/Intent;

    iget-object v1, p0, Lcom/example/hanlei/first_demo/MainActivity$2;->this$0:Lcom/example/hanlei/first_demo/MainActivity;

    const-class v2, Lcom/example/hanlei/first_demo/Main2Activity;    invoke-direct {v0, v1, v2}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V    .line 34    .local v0, "i":Landroid/content/Intent;
    iget-object v1, p0, Lcom/example/hanlei/first_demo/MainActivity$2;->this$0:Lcom/example/hanlei/first_demo/MainActivity;

    invoke-virtual {v1, v0}, Lcom/example/hanlei/first_demo/MainActivity;->startActivity(Landroid/content/Intent;)V    .line 35    return-void
.end method</init>
登入後複製

这里我们不一句一句翻译,想看的回去翻之前的内容,很多。
我们来看这里的主要代码:
新建一个 Intent对象

new-instance v0, Landroid/content/Intent;
登入後複製

获取MainActivity对想存储在v1中

 iget-object v1, p0, Lcom/example/hanlei/first_demo/MainActivity$2;->this$0:Lcom/example/hanlei/first_demo/MainActivity;
登入後複製

把Main2Activity存入v2中

 const-class v2, Lcom/example/hanlei/first_demo/Main2Activity;
登入後複製

然后把v1和v2放入v0中。

invoke-direct {v0, v1, v2}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V</init>
登入後複製

startActivity调用即可。还是很简单的,很容易理解的。

.line 34    .local v0, "i":Landroid/content/Intent;
    iget-object v1, p0, Lcom/example/hanlei/first_demo/MainActivity$2;->this$0:Lcom/example/hanlei/first_demo/MainActivity;

    invoke-virtual {v1, v0}, Lcom/example/hanlei/first_demo/MainActivity;->startActivity(Landroid/content/Intent;)V
登入後複製

虽然我不知道smali的含义,但我很熟悉它,一下就理解了。恩,语言还是多看看,多分析分析,有好处的。我熟练掌握C语言是因为学习时坚持不懈地敲了许多代码并完成了几个项目。

0x04 实战分析

样本

样本为了方便我就传在百度云里了
原APK:链接:https://pan.baidu.com/s/1pMwcuef 密码:a673

试玩

不知道为什么我的夜深模拟器打不开了。试试别的模拟器。

Android基礎逆向沒怎麼實現

一打开游戏,就弹出个这个界面,很不喜欢,我想直接弹出我的游戏界面。
好,我们用我们刚开始的技能。

1.apk反编译

Android基礎逆向沒怎麼實現

2.查看Androidmanifest.xml文件

                                                                                                                <activity></activity>        <activity></activity>                                                    <category></category>                <category></category>                        <intent-filter>                <action></action>                <category></category>            </intent-filter>                <activity>            <intent-filter>                <action></action>                <category></category>            </intent-filter>        </activity>                <activity></activity>                                                                            
登入後複製

3.尝试跳转

首先来看下我们的跳转。

                                            <category></category>                <category></category>                        <intent-filter>                <action></action>                <category></category>            </intent-filter>        
登入後複製

跳转的Activity名称为:cn.cmgame.billing.api.GameOpenActivity,Gameopen。。。恩,这是什么唉,好奇怪。但是呢,肯定就是我们打开的界面。恩。我觉得这个有点重要,以后可能会涉及到。所以还是找个小本子记下来。我应该建立一个小本子。
我们来看一下我们的Activity。

<activity></activity><activity></activity>
登入後複製

这里有两个Activity:
第一个Activity的name:android:name="MainActivity"
第二个Activity的name:android:name="LogActivity"
作为开发人员,MainActivity,就是一个开始恩。我们直接开始更改。

                                              <category></category>                <category></category>                        <intent-filter>                <action></action>                <category></category>            </intent-filter>         
登入後複製

这个是修改后的Activity。
其实我也只是对

                 <action></action>                <category></category>
登入後複製

这两句有了解。但是还有三句是什么,一起来看一下吧。关于测试的问题,我们学习完之后再进行测试吧。
首选是

<category></category>
登入後複製
登入後複製

Android基礎逆向沒怎麼實現

<category></category>
登入後複製

这两个直接挪过去,直接失败。所以,还是分析一下吧。
刚才说的

<category></category>
登入後複製
登入後複製

这句就是必须的。
还有两句

 <category></category>
登入後複製

以上是Android基礎逆向沒怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 Sep 12, 2024 pm 12:23 PM

最近幾天,Ice Universe 不斷披露有關 Galaxy S25 Ultra 的詳細信息,人們普遍認為這款手機將是三星的下一款旗艦智慧型手機。除此之外,洩密者聲稱三星只計劃升級一台相機

三星 Galaxy S25 Ultra 洩漏了第一張渲染圖,傳聞中的設計變化被曝光 三星 Galaxy S25 Ultra 洩漏了第一張渲染圖,傳聞中的設計變化被曝光 Sep 11, 2024 am 06:37 AM

OnLeaks 現在與 Android Headlines 合作,首次展示了 Galaxy S25 Ultra,幾天前,他試圖從他的 X(以前的 Twitter)粉絲那裡籌集到 4,000 美元以上的資金,但失敗了。對於上下文,嵌入在 h 下面的渲染圖像

IFA 2024 | TCL 的 NXTPAPER 14 在性能上無法與 Galaxy Tab S10 Ultra 相媲美,但在尺寸上幾乎可以與之媲美 IFA 2024 | TCL 的 NXTPAPER 14 在性能上無法與 Galaxy Tab S10 Ultra 相媲美,但在尺寸上幾乎可以與之媲美 Sep 07, 2024 am 06:35 AM

除了發布兩款新智慧型手機外,TCL 還發布了一款名為 NXTPAPER 14 的新 Android 平板電腦,其大螢幕尺寸是其賣點之一。 NXTPAPER 14 採用 TCL 標誌性品牌霧面液晶面板 3.0 版本

Vivo Y300 Pro 在 7.69 毫米纖薄機身中配備 6,500 mAh 電池 Vivo Y300 Pro 在 7.69 毫米纖薄機身中配備 6,500 mAh 電池 Sep 07, 2024 am 06:39 AM

Vivo Y300 Pro剛剛全面亮相,它是最薄的中階Android手機之一,配備大電池。準確來說,這款智慧型手機厚度僅為 7.69 毫米,但配備 6,500 mAh 電池。這與最近推出的容量相同

三星 Galaxy S24 FE 預計將以低於預期的價格推出,有四種顏色和兩種記憶體選項 三星 Galaxy S24 FE 預計將以低於預期的價格推出,有四種顏色和兩種記憶體選項 Sep 12, 2024 pm 09:21 PM

三星尚未就何時更新其 Fan Edition (FE) 智慧型手機系列提供任何提示。目前來看,Galaxy S23 FE 仍然是該公司的最新版本,於 2023 年 10 月年初推出。

新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 Sep 12, 2024 pm 12:22 PM

最近幾天,Ice Universe 不斷披露有關 Galaxy S25 Ultra 的詳細信息,人們普遍認為這款手機將是三星的下一款旗艦智慧型手機。除此之外,洩密者聲稱三星只計劃升級一台相機

小米紅米 Note 14 Pro Plus 上市,成為首款配備 Light Hunter 800 相機的高通 Snapdragon 7s Gen 3 智慧型手機 小米紅米 Note 14 Pro Plus 上市,成為首款配備 Light Hunter 800 相機的高通 Snapdragon 7s Gen 3 智慧型手機 Sep 27, 2024 am 06:23 AM

Redmi Note 14 Pro Plus 現已正式成為去年 Redmi Note 13 Pro Plus 的直接後繼產品(亞馬遜售價 375 美元)。正如預期的那樣,Redmi Note 14 Pro Plus與Redmi Note 14和Redmi Note 14 Pro一起成為Redmi Note 14系列的主角。李

摩托羅拉 Razr 50s 在早期洩漏中顯示自己可能是新的預算可折疊手機 摩托羅拉 Razr 50s 在早期洩漏中顯示自己可能是新的預算可折疊手機 Sep 07, 2024 am 09:35 AM

摩托羅拉今年發布了無數設備,儘管其中只有兩款是可折疊的。就上下文而言,雖然世界上大多數地區都收到了 Razr 50 和 Razr 50 Ultra,但摩托羅拉在北美提供了 Razr 2024 和 Razr 2

See all articles