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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

企业壳的反调试及Hook检测分析

發布時間:2025/3/15 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业壳的反调试及Hook检测分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.寫在開始

最近在學習梆梆殼,在調試的過程中遇到了反調試,很是苦惱,而且每次調試都會被中斷,朋友發了篇帖子【1】介紹了其中的一個反調,學習后收獲頗多,給我指明了方向,接下來再對其他反調試進行補充,若有疏漏之處請各位大佬批評指正。

2.反調試之時間線程檢測

啟動調試后是對帖子【1】的驗證,過程大致如下:

運行brpt.py后一路F9,

... #下斷點 # 內存中獲取模塊基地址 base = FindModule('linker');#.text:00002464 BLX R4 addr = base + 0x2464; #該偏移值需要使用IDA靜態查看linker模塊的偏移值 #給linker下斷點 AddBpt(addr);#在libc.so中對庫函數下斷點 AddBpt(LocByName('fopen')); AddBpt(LocByName('ptrace')); ...

當lr為pB54EB0CAE49198754C66F4A57BDB01DF函數時即為第一個反調試的線程創建處,然后會調用libDexHelper.so:pDD8ABF73B0AE99BD998BC5C954A74856,

再按一次F9即可斷到帖子中提到的fopen函數處

執行完fopen后,回到調用函數libDexHelper.so:p8878CAA1006835C9D43174C88143BA8B處,然后在如下所示處下斷點,F9執行到此處,觀察寄存器的值并做相應的修改,具體思路就是要跳過libDexHelper.so:AEDC62A8 BLX sub_AEDA6ECC 這個函數調用即可。

執行完成后,會跳出調用函數,來到下圖處將r0寄存器的值修改為0,或將指令#1改為#0即可。

并在p39D6B1EED99DC7E506A9D4E07BD58D3A處下斷,

執行完之后F9,則會跳到p39D6B1EED99DC7E506A9D4E07BD58D3A處,

該函數功能類似kill,具體過程參考帖子【1】。

接下來通過靜態分析知道了時間線程的創建點,如下所示:

具體的時間檢測函數如下:

其中主要就是調用了gettimeofday函數,獲取時間,然后再做如下比較:

不滿足條件則kill掉,

以上便是時間檢測的功能了。

3.反調試之ptrace檢測

接下來是ptrace檢測函數,通過靜態分析ptrace被調用了3次,首先進行PTRACE_ATTACH,第二次調用后和0進行比較,最后進行PTRACE_DETACH,如下所示:

另一處case 13會調用pF77EA32766D841ED6BD10130E181CB0D()也是ptrace檢測,

在p9392640B2E38B72373213C945704CA08處也調用了ptrace檢測,

具體函數如下所示:

其中p1EBFB58D66C99CAD7405904C9B93559D()->p39D6B1EED99DC7E506A9D4E07BD58D3A。

4.函數大致流程

經過上述分析,整理大致調用流程如下(隨手畫的):

5.Hook檢測之Xposed檢測

對于Xposed檢測主要是對相關字符串做了比對,如下圖所示:

在做完比對后返回0和1進行比較,最后又會調用那個自己寫的p39D681EED99DC7E506A9D4E07BD58D3A函數,前面提到,該函數功能類似kill,此處做了重命名為p3_linux_syscal_kill。

6. Hook檢測之substrace檢測

通過靜態分析可知,pAFD3E6E79D2F88D9F3563AE570866D51函數在case2中調用了pB4DACEC3279252082ECED1471A664BF7函數,此函數則為substrace的檢測點,

具體函數如下所示:

當然也是比較的字符串,根據以上信息可以在手機中安裝對應的框架進行動態驗證,由于我的環境沒有安裝該hook框架,故暫未進行動態驗證。

7.小結

根據以上分析,過掉以上反調試就很容易了,具體操作不難,不再贅述,方法可以參考帖子【2】。我采用idapython腳本繞過,終于可以開心的調試了,以上當然不是所有的反調,具體還有其他細節的處理遇到了再根據具體情況加以分析,其中還有inotify沒有分析,具體可以參考另一篇帖子【3】。當然,對于梆梆殼這只是邁出的第一步,還有很多內容等待我們去挖掘!

8.參考引用

【1】https://bbs.pediy.com/thread-223808.htm

【2】https://bbs.pediy.com/thread-218938.htm

【3】https://bbs.pediy.com/thread-223320.htm

*本文原創作者:y0nLandroid,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載

原文地址:?http://www.freebuf.com/articles/es/160656.html

總結

以上是生活随笔為你收集整理的企业壳的反调试及Hook检测分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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