国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【安卓】拿注冊(cè)碼的兩種方式

這篇具有很好參考價(jià)值的文章主要介紹了【安卓】拿注冊(cè)碼的兩種方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【安卓】拿注冊(cè)碼的兩種方式


文章僅用于學(xué)習(xí)交流,請(qǐng)勿利用文章中的技術(shù)對(duì)任何計(jì)算機(jī)系統(tǒng)進(jìn)行入侵操作。利用此文所提供的信息而造成的直接或間接后果和損失,均由使用者本人負(fù)責(zé)。

首發(fā)吾愛(ài):https://www.52pojie.cn/thread-1826802-1-1.html

言歸正傳,前段時(shí)間和朋友聊到某項(xiàng)功能,他說(shuō)他是之前買的一個(gè)手機(jī)設(shè)備,那個(gè)手機(jī)可以實(shí)現(xiàn)這個(gè)功能,我當(dāng)時(shí)就來(lái)了興致,做了底層修改這么牛?
后來(lái)拿來(lái)看了看,手機(jī)刷了第三方rom和Magisk,利用一個(gè)app實(shí)現(xiàn)了這個(gè)功能(雖然愛(ài)思助手就有這個(gè)功能),但是有現(xiàn)成的app就想著研究一番,結(jié)果好家伙要驗(yàn)證碼?于是就有了下文(在安卓逆向中屬于非?;A(chǔ)了)

微信公眾號(hào):小惜滲透,歡迎大佬一起交流進(jìn)步

1. java理邏輯

打開軟件,圖片如下

隨便填寫點(diǎn)信息,然后點(diǎn)確定

【安卓】拿注冊(cè)碼的兩種方式,android

查一下有沒(méi)有殼

【安卓】拿注冊(cè)碼的兩種方式,android

沒(méi)有殼,直接拖進(jìn)jadx,然后搜索關(guān)鍵字校驗(yàn)失敗,發(fā)現(xiàn)兩處,并且都在一個(gè)類中,先看第一處如下圖所示,主要是有兩個(gè)判斷分支,首先我們要知道我們想要激活成功肯定是需要讓代碼不能走到else分支里

  • 先看最外層if語(yǔ)句判斷了regCode的長(zhǎng)度是否大于6,這個(gè)regCode看出是從控件中獲得,也就是我們輸入的注冊(cè)碼,所以這里得到信息,我們的注冊(cè)碼長(zhǎng)度要大于6

  • 緊接著看內(nèi)層的

//可以看出它new了一個(gè)Date也就是當(dāng)前的日期,然后判斷finalDate是否大于當(dāng)前的日期
//finalDate的值為aqnuzcxq.getFinalDate(date),這個(gè)date是我的當(dāng)初輸入的注冊(cè)碼字符串從下標(biāo)為6(也就是第七個(gè)數(shù))到最后的截?cái)?/span>
//所以接下來(lái)我們需要跟進(jìn),看下getFinalDate函數(shù)
if (finalDate.compareTo(new Date()) > 0) 

【安卓】拿注冊(cè)碼的兩種方式,android

為了注釋方便,我將看下getFinalDate函數(shù)直接粘貼到下方

public static Date getFinalDate(String num) {
        //聲明一個(gè)calendar對(duì)象
    	Calendar c = Calendar.getInstance();
    	//設(shè)定其日期為2019/12/1
        c.setTime(new Date("2019/12/1"));
    	//調(diào)用add函數(shù)增加日期,其中6代表增加數(shù)字代表的是天數(shù)(依據(jù)如下圖),增加的值為hexDecode(num),也就是對(duì)num進(jìn)行16進(jìn)制轉(zhuǎn)10進(jìn)制后得到的數(shù)字
        c.add(6, hexDecode(num));
    	//返回日期
        return c.getTime();
    }

【安卓】拿注冊(cè)碼的兩種方式,android

至此,整理得到邏輯,當(dāng)我們輸入注冊(cè)碼的時(shí)候,軟件會(huì)截取從第7個(gè)起到末尾的字符串,然后利用hexDecode函數(shù)對(duì)其解碼得到一個(gè)數(shù)字,計(jì)算2019年12月1日加上這個(gè)數(shù)字并到的新的日期,用這個(gè)新的日期去對(duì)比今天的日期,判斷是否過(guò)期。

hexDecode和hexEncode在代碼中都有,比如我這里想讓其增加9999天,那么解碼前的原字符串應(yīng)該為多少呢,我這里寫了個(gè)demo,字符串為38259

【安卓】拿注冊(cè)碼的兩種方式,android

加完之后,日期是多少呢?2047年,可以夠用了,所以這里我們得出我們激活碼的第后半部分可以寫個(gè)38259

【安卓】拿注冊(cè)碼的兩種方式,android

既然后半部分有了,就差前半部分了,前辦部分的邏輯如下

可以看到代碼正常走的話,又會(huì)觸發(fā)校驗(yàn)失敗的提示,所以我們要讓其走到前面的if分支即可,因?yàn)榍懊娴?code>if分支有return關(guān)鍵字,我們看一下這個(gè)if分支,它獲取了tvMachineCode這個(gè)控件的值作為第一個(gè)參數(shù),這個(gè)控件為前面圖中的機(jī)器碼字段,并調(diào)用getFingerPrint函數(shù),將返回值于regCode進(jìn)行比對(duì)

regCode從前面的代碼中聲明了(在第一張代碼圖中),它是我們注冊(cè)碼的前6位

【安卓】拿注冊(cè)碼的兩種方式,android

我們跟進(jìn)一下getFingerPrint函數(shù),如下很簡(jiǎn)單,它就是將傳入的兩個(gè)參數(shù)想加然后進(jìn)行md5加密,然后獲取前6位,看上圖,第一個(gè)參數(shù)我們知道了是機(jī)器碼,第二個(gè)參數(shù)是keyCode

【安卓】拿注冊(cè)碼的兩種方式,android

接下來(lái)找這個(gè)keyCode,從下向上看,最后追溯到show函數(shù)的第三個(gè)參數(shù),這里我們只需找到哪里調(diào)用了show函數(shù)即可,在show函數(shù)上按x,找到調(diào)用

【安卓】拿注冊(cè)碼的兩種方式,android

只找到一處調(diào)用,就是它了,看第三個(gè)參數(shù)123456(脫敏了)

【安卓】拿注冊(cè)碼的兩種方式,android

ok,既然如此我們前6位字符串也知道了,將機(jī)器碼和123456拼接,然后進(jìn)行md5加密,然后取前6位,最后拼接上我們之前逆出來(lái)的38259得到的字符串拿去激活

【安卓】拿注冊(cè)碼的兩種方式,android

2. 改smali代碼的判斷分支

打開dex,搜索校驗(yàn)失敗,翻到第一個(gè)判斷分支如下,這里v7是6,應(yīng)該是判斷長(zhǎng)度大于6那個(gè)位置,if-le表示a小于等于b則調(diào),所以我們默認(rèn)長(zhǎng)度大于6這里不跳,接著往下看下一個(gè)判斷分支出現(xiàn)

【安卓】拿注冊(cè)碼的兩種方式,android

這里的if-gtz表示如果v9大于0則跳,所以我們這里需要將其改成反過(guò)來(lái)小于等于0則跳,所以這里改成if-ltz

【安卓】拿注冊(cè)碼的兩種方式,android

第一個(gè)判斷分支解決,繼續(xù)向下找第二個(gè),如圖這個(gè)位置正對(duì)代碼中的equals比較處,這里if-eqz表示a等于0則跳,那我們改成a不等于0,也就是if-nez

【安卓】拿注冊(cè)碼的兩種方式,android

然后胡亂輸入即可

【安卓】拿注冊(cè)碼的兩種方式,android

? 這種方法不推薦,因?yàn)槊看芜M(jìn)應(yīng)用會(huì)有檢驗(yàn)是否過(guò)期函數(shù),當(dāng)然也可以對(duì)這個(gè)函數(shù)進(jìn)行修改或置空,當(dāng)然還有其它方式例如用frida進(jìn)行hook,這里由于時(shí)間關(guān)系就不多做贅述了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-683624.html

到了這里,關(guān)于【安卓】拿注冊(cè)碼的兩種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • OmniGraffle Pro for Mac 中文正式版(附注冊(cè)碼) 蘋果電腦 思維導(dǎo)圖軟件

    OmniGraffle Pro for Mac 中文正式版(附注冊(cè)碼) 蘋果電腦 思維導(dǎo)圖軟件

    OmniGraffle Pro是OmniGraffle的高級(jí)版本,它提供了更多的功能和工具,可以幫助用戶創(chuàng)建更為復(fù)雜和高級(jí)的圖表和流程圖。OmniGraffle Pro支持自定義形狀、圖形、線條和箭頭等,可以讓用戶創(chuàng)建出更加精細(xì)的圖表。此外,OmniGraffle Pro還支持自動(dòng)布局、智能連接線、圖層管理等功能,

    2024年02月09日
    瀏覽(31)
  • Nacos 的底層實(shí)現(xiàn)原理 & 注冊(cè)中心的兩種調(diào)用方式

    Nacos 的底層實(shí)現(xiàn)原理 & 注冊(cè)中心的兩種調(diào)用方式

    目錄 1. Nacos 的底層實(shí)現(xiàn)原理 1.1 配置中心自動(dòng)刷新實(shí)現(xiàn)原理 1.2? 注冊(cè)中心底層實(shí)現(xiàn)原理 2. Nacos 注冊(cè)中心的兩種調(diào)用方式 ?2.1 RestTemplate?+ Spring Cloud LoadBalancer 的調(diào)用方式 2.2 使用 OpenFeign + Spring Cloud LoadBalancer? Nacos 配置中心的自動(dòng)刷新,其底層是基于 長(zhǎng)輪詢+事件驅(qū)動(dòng) 的方式來(lái)

    2024年02月05日
    瀏覽(24)
  • Android——自定義Dialog的兩種常見(jiàn)方式

    通常我們只需要關(guān)注三個(gè)回調(diào)方法: onCreateDialog:創(chuàng)建一個(gè)dialog外殼 onCreateView:給dialog外殼填充自己想要的樣式布局 onViewCreated:這里面給布局的view進(jìn)行初始化操作,可以設(shè)置一些監(jiān)聽器等等 事例: 自定義布局文件:隨便寫一個(gè)

    2024年02月16日
    瀏覽(23)
  • Android Studio 顯示gif動(dòng)圖的兩種方式

    Android Studio 顯示gif動(dòng)圖的兩種方式

    將所需的.gif圖片復(fù)制到drawable文件夾下,如下圖所示。 在布局文件添加ImageView代碼段,如下所示。 在MainActivity添加邏輯代碼段,如下所示。 將下載的glide-3-6-0.jar復(fù)制到Project視圖下的app-libs文件夾中,并右鍵選擇Add As library導(dǎo)入包,如下圖所示。 glide-3-6-0.jar的下載鏈接:htt

    2024年02月16日
    瀏覽(25)
  • Android Studio 導(dǎo)入framework.jar的兩種方式

    Android Studio 導(dǎo)入framework.jar的兩種方式

    第一種:把framework的jar包放到工程目錄外 1、把framework.jar包放到當(dāng)前工程以外的地方。例如我放到SDK目錄下。如下圖 ?2、在項(xiàng)目根目錄的gradle中引入jar包 ?導(dǎo)入后我們可以在項(xiàng)目中導(dǎo)入的包 External Libraries 中找到“Gradle D”的包。是因?yàn)槲业腟DK在D盤下,framework包放在SDK包下。

    2024年02月09日
    瀏覽(29)
  • android 9.0以上版本,獲取U盤路徑的兩種方式

    第一種,通過(guò)DocumentProvider: 第二種,通過(guò)StorageManager,無(wú)法使用的記得用反射;

    2024年02月13日
    瀏覽(27)
  • 阿里二面:adb 連接 Android 手機(jī)的兩種方式,看完你就懂了...

    阿里二面:adb 連接 Android 手機(jī)的兩種方式,看完你就懂了...

    隨著現(xiàn)在移動(dòng)端技術(shù)的突飛猛進(jìn),導(dǎo)致現(xiàn)在市場(chǎng)上,APP 應(yīng)用數(shù)不勝數(shù),那對(duì)于測(cè)試工程師而言,對(duì)于 APP 的測(cè)試,那基本就是一個(gè)必修課了。 今天,我就來(lái)給大家介紹一下,adb?連接 Android 手機(jī)的兩種方式 先使用 USB 線,連接 PC 和手機(jī) 通過(guò) PC 給手機(jī)安裝 adb 驅(qū)動(dòng),下載好安

    2024年03月22日
    瀏覽(44)
  • 華為二面:adb 連接 Android 手機(jī)的兩種方式,看完你就懂了

    華為二面:adb 連接 Android 手機(jī)的兩種方式,看完你就懂了

    隨著現(xiàn)在移動(dòng)端技術(shù)的突飛猛進(jìn),導(dǎo)致現(xiàn)在市場(chǎng)上,APP 應(yīng)用數(shù)不勝數(shù),那對(duì)于測(cè)試工程師而言,對(duì)于 APP 的測(cè)試,那基本就是一個(gè)必修課了。 今天,我就來(lái)給大家介紹一下,adb?連接 Android 手機(jī)的兩種方式 先使用 USB 線,連接 PC 和手機(jī) 通過(guò) PC 給手機(jī)安裝 adb 驅(qū)動(dòng),下載好安

    2024年02月09日
    瀏覽(24)
  • ssh的兩種登錄方式

    ssh的兩種登錄方式

    1. 密碼登錄 這是默認(rèn)的一種登錄方式,如圖: 輸入密碼以后成功登錄shell: 以后每次登錄都得輸入密碼,比較麻煩。 2. 公鑰登錄 為了方便,ssh還提供了使用公鑰的登錄方式,原理為在client生成一對(duì)公私鑰,client保留私鑰,把公鑰寫入server。具體方式如下: 一、 在client: 生

    2024年02月16日
    瀏覽(19)
  • Containerd的兩種安裝方式

    Containerd的兩種安裝方式

    1. 輕量級(jí)容器管理工具 Containerd 2. Containerd的兩種安裝方式 3. Containerd容器鏡像管理 4. Containerd數(shù)據(jù)持久化和網(wǎng)絡(luò)管理 操作系統(tǒng)環(huán)境為centos7u6 1.1 獲取YUM源 1.2 使用yum命令安裝 1.3 驗(yàn)證安裝及啟動(dòng)服務(wù) 1.4 驗(yàn)證可用性 Containerd有兩種安裝包: 第一種是 containerd-xxx ,這種包用于單機(jī)測(cè)

    2024年02月14日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包