前段時間發現乙個應用被雙開後,不能同時在乙個手機上登陸兩個賬號,登陸a之後,b會被踢下線。
剛開始還以為有什麼黑科技,或者有名管道,本地socket之類的,或者是向sd卡寫了什麼檔案,這幾種方案都檢查了,沒有效果。
沒辦法只能分析它的邏輯了,應用是加固了的,脫殼之後分析其原理。偶然通過netstat命令發現了這個應用監聽了乙個埠,發現原來用了這麼簡單的一種方法防止雙開,既沒有讀取imei,imsi,也沒有黑科技。就下面幾行**
/* renamed from: b */
public boolean mo4479b(string str, virtualcheckcallback virtualcheckcallback)
try catch (ioexception unused)
return true;
}}
原理是建立了乙個 localserversocket,傳入了同乙個 str,localserversocket在native還是通過linux的套接字實現的,這個str是不能重複的,只要重複了就是bind失敗,就這麼簡單,檢測到建立localserversocket失敗就退出登陸,防止被雙開。
還有另外一種方法是檢測service是否被**,pms在雙開裡面是必然要被**的,恰好activitythread裡面也存了乙份快取。
try
arg17.finish();
process.killprocess(process.mypid());
label_35:
...}
C 中禁止類被派生的方法
在我的那篇 c 中虛析構函式的作用 中我說明了為什麼作為基類的類的析構函式必須是虛函式,同時也指出 為了避免產生虛函式表,如果類不是基類的話,析構函式就不需要宣告為虛函式。但是,我們不能預料使用者的行為,你不敢肯定使用者是否會從你的類去派生自己的類。如果使用者以乙個基類指標去刪除乙個派生類的物件,就...
C 中禁止類被派生的方法
我的那篇 c 中虛析構函式的作用 中我說明了為什麼作為基類的類的析構函式必須是虛函式,同時也指出 為了避免產生虛函式表,如果類不是基類的話,析構函式就不需要宣告為虛函式。但是,我們不能預料使用者的行為,你不敢肯定使用者是否會從你的類去派生自己的類。如果使用者以乙個基類指標去刪除乙個派生類的物件,就會...
Linux下禁止ping最簡單的方法
ping是乙個通訊協議,是ip協議的一部分,tcp ip 協議的一部分。利用它可以檢查網路是否能夠連通,用好它可以很好地幫助我們分析判定網路故障。應用格式為 ping ip位址。但服務啟用ping有時候會造成很多麻煩。因此有時候根據需要 如防止攻擊 linux伺服器管理員可限 務器禁止其它使用者pi...