企業殼的反調試及Hook檢測分析

來源:互聯網
上載者:User
1.寫在開始

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

啟動調試後是對文章【1】的驗證,過程大致如下:

運行brpt.py後一路F9,

...#下斷點# 記憶體中擷取模組基地址base = FindModule('linker');#.text:00002464     BLX        R4addr = 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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.