非Xposed版 修改微信摇塞子
本文繼續上篇文章
微信6.6.7版本搖塞子破解思路(居多圖)
本文不再粘貼java轉smali語法詳細過程,只是講訴下思路
?
?
?
?
Xposed版本?不是所有手機環境都支持,所以我才想試試直接反編譯代碼寫入微信apk中,這樣用戶就不需要配置什么復雜的環境.
?
第一個目標
效果如圖
?
怎么做呢?很簡單嘛拿TraceView?簡體這個按鈕觸發點擊事件在哪即可.
?
可以看到點擊處理在HomeUI$25這個類中
?
那么我們先寫一個彈窗函數m_show函數?嵌入HomeUI$25這個類
?
public?boolean?m_show(View?view)?{try?{//LauncherUI.m_instance_LauncherUI是一個上下文對象?AlertDialog.Builder?builder?=?new?AlertDialog.Builder(LauncherUI.m_instance_LauncherUI);builder.setTitle("桂電的互聯掃地僧");String?options[]?=?new?String[]{"搶紅包",?"塞子控制",?"猜拳控制",?"防撤銷",?"閃圖保存"};builder.setItems(options,?new?DialogInterface.OnClickListener()?{@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();}});builder.setNegativeButton("關閉",?new?DialogInterface.OnClickListener()?{@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();}});builder.show();}?catch?(Exception?e)?{Log.e("FMY=================",?"m_show:?");e.printStackTrace();}return?true; }?
特別提醒的就是上面這個java轉smali會生成匿名類文件,請一并拷貝到反編譯的微信中
?
上面這個方法是嵌入在我們要反編譯之后的微信之中的,我們直接嵌入HomeUI$25這個類即可,當用戶點擊微信界面的十字先執行它原本的的onclick函數,我們在onclick函數中調用m_show()即可.(當然這里嵌入的是smali代碼,上一篇文章講訴過怎么做了)
再來解決一個問題如何得到上下文對象實例?因為我們彈窗代碼需要用到這個作為參數.
解決辦法,也很簡單,View有一個函數getContent來獲取 .然后你會發現用這個方法不一定成功哦,這里不做原因解釋
我們直接干脆拿微信界面的Activity界面的對象實例.(Activity也是一個上下文對象的子類)
?
首先打開微信界面,然后再命令行輸入?adb?shell?dumpsys?acitivity?top
?
?
我們這里采用的思想如下.
在LanucherUi這個類中創建public的靜態實例指向自己,
偽代碼如下(請自行修改微信源smali代碼)
?
?
此時彈窗代碼基本思路介紹完了.我們把彈窗完善下,當用戶點擊彈窗的控制撒子按鈕時我們在彈窗一個選擇1到6的選擇界面,目的是讓用戶選擇塞子點數.
?
這里直接貼代碼吧
class?HomeUI$25?{public?void?onClick(View?view){/***?*************************?***********************?這里注釋表示原本程序的邏輯代碼*?**********************?***********************/m_show(view);//彈窗/***?*************************?***********************?這里注釋表示原本程序的邏輯代碼*?**********************?***********************/}public?boolean?m_show(View?view)?{try?{AlertDialog.Builder?builder?=?new?AlertDialog.Builder(LauncherUI.m_instance_LauncherUI);builder.setTitle("桂電的互聯掃地僧");String?options[]?=?new?String[]{"搶紅包",?"塞子控制",?"猜拳控制",?"防撤銷",?"閃圖保存"};builder.setItems(options,?new?DialogInterface.OnClickListener()?{@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();switch?(which)?{case?1:dialog.dismiss();ctl_dice();break;}}});builder.setNegativeButton("關閉",?new?DialogInterface.OnClickListener()?{@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();}});builder.show();}?catch?(Exception?e)?{Log.e("FMY=================",?"m_show:?");e.printStackTrace();}return?true;}public?void?ctl_dice()?{try?{AlertDialog.Builder?builder?=?new?AlertDialog.Builder(LauncherUI.m_instance_LauncherUI);builder.setTitle("選擇點數");String?options[]?=?new?String[]{"1",?"2",?"3",?"4",?"5",?"6"};builder.setItems(options,?new?DialogInterface.OnClickListener()?{@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();//給bi類的dice變量設置搖骰子點數.這個類是上一篇文章中分析過的?用戶隨機生成一個0-5的數字//?控制骰子.我們這里在手動的添加了一個靜態int變量名為dice.后文在繼續詳細講解bi.dice?=?which;Toast.makeText(LauncherUI.m_instance_LauncherUI,?"修改點數成功",?Toast.LENGTH_SHORT).show();}});builder.show();}?catch?(Exception?e)?{Log.e("FMY=================",?"m_show:?");e.printStackTrace();}}}?
還有一處思想要改就是如何完美控制?
上面一行代碼如下
?bi.dice?=?which;?
上一篇文章解釋過bi類中有個eF函數,我們在eF函數返回塞子點數.
我們這里可以在這個類中創建一個變量叫dice,當調用eF的時候直接返回dice作為結果(當然你還要在eF中判斷是否為當前函數調用是為了生成塞子點數,這個函數有可能為其他目的而被調用)
?
?
以上就是整體的思路.反編譯會apk即可,實現非xposed實現點數控制
現在網上有一些賣什么vip版本微信?原理也是如此.當然也可以添加微信帳號密碼監聽功能,所以請小心.
不打算放出
總結
以上是生活随笔為你收集整理的非Xposed版 修改微信摇塞子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频号成长社群「DO视社」
- 下一篇: KUKA 以太网安装包