效果 輪循 輪循檢測技術

2021-10-14 16:50:21 字數 1327 閱讀 6511

反除錯的方法之一,就是保護程式的**會一直監視程序的tracepid是否發生變化,不斷輪循檢查tracepid的值,假如為0的話,說明該程序沒有被除錯,假如不為0的話,就說明該程序正在被除錯,這就是輪循檢測。

直接分析原始碼,如下圖所示。

1.檢視反除錯部分**邏輯,如下圖所示。

2.獲取當前程序的狀態資訊,如下圖所示。

3.從一系列檢測狀態資訊中獲取tracepid 字串,如下圖所示。

4.如果tracepid的值一直為零,就直接迴圈列印,如下圖所示。

5.如果tracepid的值不為零,就返回false,如下圖所示。

## 二:演示程式執行效果

將poll_anti_debug和debugger兩個檔案push到手機目錄下,如下圖所示。

debugger檔案:除錯程式,選擇程式的程序名稱除錯程式;poll_anti_debug:檢測除錯程式的存在。

1.給poll_anti_debug許可權,執行該程式,由於當前沒有去除錯它,所以tracepid的的值一直是零,如下圖所示。

2.新開乙個cmd,使用偵錯程式debugger去除錯,發現字段值發生變化,如下圖所示。

了解了輪循**實現的原理,同時還演示了輪循檢測的效果。

長輪循,短輪循

b s模型中 長輪循,阻塞在伺服器端,一有訊息就將訊息 推 給客戶端,客戶端收到返回訊息之後,馬上又發出第二次請求,如此迴圈 短輪循,客戶端用ajax之類,過一段時間往伺服器端發乙個請求,不管有沒有訊息都立刻返回。長輪循 適合即時聊天,比如webim,發糖果的聊天工具,暢遊網的結合遊戲與web的聊天...

DNS網域名稱輪循業務監控

我們一般的dns解析是乙個網域名稱對應乙個ip位址,但是若我們用dns輪循技術即可將乙個網域名稱對應多個ip位址,這樣可以實現簡單且高效的負載平衡,但是輪循技術有乙個缺點就是當目標主機不可用時,不能自動的刪除,所以引出了要對業務主機的服務的可用性進行監控。具體流程是利用dnspython模組的res...

(一)靜態輪循排程演算法實現

有一堆組,每組成員不定時進出組,且組內成員會有狀態,要求實現請求過來時,輪詢分配給特定狀態的成員。於是想到了經典的round robin演算法,根據業務寫了個demo,如下 class roundrobin 不公平迴圈分配實現演算法 原理 通過取模實現輪循排程 資料結構 許可權人員集合 1,2,3,...