日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

为Android购买多个改装微信,从制作一个“微信多开版”看微信安全

發布時間:2023/12/9 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为Android购买多个改装微信,从制作一个“微信多开版”看微信安全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

第一次聽到微信多開大概在2013年,一個做微商的朋友,問我能不能做一個微信安卓版的多開程序,我覺得挺有意思估計也不難,便研究起來。研究后也發現其實也有一些技術難點,和了解到的一些微信的安全策略,寫出來與大家分享,不足之處多多指教。

0x00 多開思路

從Android開發角度來說,擁有不同包名的2個應用,Android系統會認為是2個應用,所以微信

多開的思路是修改微信的包名,讓安卓系統認為這是2個應用,從而達到多開的目的。

0x01 工具準備

系統環境是OS X 10.11

apktool 2

dex2jar

JD-GUI

baksmali & smali

0xED

Sublime Text

0x02 APK解包與分析

使用apltool進行解包,我們可以看到一些關鍵的文件和目錄:

AndroidManifest.xml文件

assets目錄(微信插件和一些資源文件)

lib目錄(封裝好的二進制類庫,so文件)

res目錄(圖片,布局,字符串等資源)

smali目錄(微信源碼)

0x03 應用名稱修改

要制作多開的微信,也許我們需要把應用修改一個名稱,以便使用的時候和原版的區分,找到

以下文件:

res/values/strings.xml

修改app_name 和 launcher_name,比如:微信01、wechat01、超級微信、搜客微信等等

0x04 包名修改

查看AndroidMainfest.xml的manifest節點package屬性,得知微信的包名為: com.tencent.mm。

我們需要修改包名,我們將使用這個包名作為示例:com.tendk01.mm(dk是多開的意思;01是序號需要的話可以制作更多的多開版本;包名可以隨便起但是最好保持包名跟原版長度一致,避免一些奇怪的問題出現。)

做過Android開發或者Java開發的都知道每一個“包”對應一個真實的文件夾,除了修改 AndroidMainfest.xml文件還需要將smali/com/tencent文件夾名修改為tendk01。

0x05 smali文件基礎修改(調用)

我們先來看一個smali文件的幾個代碼片段:

一個smali文件的開頭:

.class public final Lcom/tencent/mm/a/a;

.super Ljava/lang/Object;

.source "SourceFile"

smali文件關于“com.tencent.mm”的引用:

sput-object v0, Lcom/tencent/mm/a/a;->coh:[C

.line 76

const/16 v0, 0x100

new-array v0, v0, [I

.line 78

sput-object v0, Lcom/tencent/mm/a/a;->coi:

.field private static final coh:[C

.field private static final coi:[I

在文件中可以看到很多com/tencent/mm的代碼,我們既然修改了包名,也要將所有的該包下 面所有的定義以及調用全部修改好(用sublime text的簡單的查找替換即可解決問題),例 如:

com/tencent/mm 修改為 com/tendk01/mm

com.tencent/mm 修改為 com.tendk01.mm

0x06 微信插件調用修改

微信的插件封裝在/assets/preload目錄下的jar文件和so文件里,你們看到的可能是這樣子的:

com.tencent.mm.plugin.mutidex.jar.0

libvoipCodec.so

com.tencent.mm.plugin.mutidex.jar.1

libvoipCodec_v7a.so.0

libvoipCodec_v7a.so.1

libvoipCodec_v5.so

libvoipCodec.so

仔細觀察,這種帶有0和1結尾的文件,仔細觀察一下便可會發現0結尾的文件都是1M大小,顯然原來的文件是按照1M進行分隔的,我們修改之前,需要先將他們合并回一個完整的文件,參考Linux的split和cat命令,合并猴進行解包,然后需要按照0x05的步驟進行修改。

0x07 *.so文件修改

在/lib/armeabi目錄下的so文件,封裝了很多JNI的方法,由于包名的修改,也需要同步修改

JNI方法的調用。 關于so文件的修改,用一般的16進制編輯器即可,查找替換:

com.tencent 修改為 com.tendk01

com/tencent 修改為 com/tendk01

com_tencent 修改為 com_tendk01

但是有一點需要注意的,so文件這樣修改完,還不能用的,會提示找不到修改后的方法。

方法名明明已經修改好了,和smali也是對應的,為什么會提示找不到方法呢? 其實so文件本

質上是一個arm架構的elf文件,如果了解elf的文件結構,便知道問題在哪里。

簡單來說,在elf文件的開頭有一段hash用來快速尋找文件內的方法位置,如果方法名修改了, hash不對應則找不到方法的位置。

根據這個原理,我寫了一個小工具來輔助修改so文件,該項目已開源在github:https://github.com/chinaameri...,在此提供修改流程圖和思路,如果大家有興趣可以一期研究修改。

修改so文件hash的流程圖:

0x08 smali文件進階修改(防封&注入)

前面我們通過查找替換的方式來對smali文件進行過簡單的修改,現在我們需要深入的修改smali文件,以達到繞過微信檢測機制和注入我們自己的代碼的目的:

基于我研究的這個版本的微信(wechat400.apk),雖然比較老,但是官方已經有防止篡改的機制在代碼里了,若修改多開不bypass微信的防篡改機制則會很快被封號。經過分析,得知檢測手段是通過應用簽名來和服務器的保存的簽名來比對,若重新打包簽名則會改變,在特定的情況就執行檢測,確認當前的微信客戶端程序是合法的且沒有被修改。

我們需要做以下的工作來繞過微信監測機制:

獲取官方微信的應用簽名信息(字符串形式)

替換所有調用獲取簽名的系統方法為我們自己寫的方法(詳見0x09)

如果可以我們還要把微信強制更新的提示給閹割掉:

修改com.tendk01.mm.sandbox.updater.AppUpdaterUI.smali,代碼如下:

.method public onResume()V

.locals 0

.prologue

invoke-super {p0}, Landroid/app/Activity;->onResume()V

invoke-virtual {p0},

Lcom/tence01/mm/sandbox/updater/AppUpdaterUI;->finish()V

return-void

.end method

直接給他finish掉,成功閹割。

0x09 編寫希望注入微信的代碼

新建一個Android項目,如圖:

MockDevice.java用于模擬虛假的設備ID,虛假的簽名

SyncTask.java用于同步微信用戶的信息到第三方API

provider包里面的是是若干ContentProvider,可用于接收微信App傳遞的數據

編寫好后編譯成apk,反編譯該apk獲取MockDevice.smali和SyncTask.smali(混淆為a.smali)文件,并放入微信的smali源碼文件夾里面,如圖:

0x0A APK打包、簽名、安裝、測試

生成自己的android簽名(需保存好該簽名)

使用apktool重新將微信打包好

使用自己的android簽名對打包好的apk簽名

安裝登錄一切正常,見圖

0x0B 微信自動化腳本

利用Android的測試框架,可以對微信進行模擬人工自動化操作(市面上所有微商神器自動化

的原理)。

為了測試開發方便,引入robotium測試框架,可以做到打開某個界面、查找某個按鈕、在某個文本框輸入內容、獲取界面信息等等操作。

0x0C 提出幾個問題供大家思考

微信還可以采用什么方式防止微信程序被篡改?

我用于研究的該多開版本(wechat400.apk),地理位置發送始終失敗,仍未解決。

0x0D 掌握這些技術可以做什么?

竊取用戶信息

自動化完成加人、關注、點贊等操作

獲取公眾號文章閱讀量、點贊量等數據

制作插件:如自動打飛機、自動搶紅包等

0x0E 對微信團隊說的話

該文章僅僅是對技術的研究和探討,希望不會收到律師信。微信團隊一直在努力維護微信這個生態圈,期待加入更多的技術手段來完善應用安全,祝一切順利。

0x0F 給安卓用戶的建議

建議不要從亂七八糟的應用市場下載應用,盡量在官方渠道下載,避免下載到被篡改過的應用,不知道這些程序在背后注入了什么代碼,若隱私泄露或者經濟損失就不好了。

總結

以上是生活随笔為你收集整理的为Android购买多个改装微信,从制作一个“微信多开版”看微信安全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。