原创 安卓&android工程逆向記錄

關於app的背景         這是記錄去年這個時期的工作,當時做過一段時間的安卓逆向。特此記錄一下當時破解的流程。希望對大家有一定的幫助,這也是我所希望的。當時的app環境是一個下層帶有so的動態庫文件,它將classes.dex加密

原创 《軟件調試藝術》讀後感六

1、監視局部變量     在GDB中,可以通過調用info locals命令得到當前桟幀中的所有局部變量的值的列表。 2、直接檢查內存       在有些情況下,可能希望檢查給定地址的內存,而不是通過變量的名稱。GDB爲這種目的提供x命令

原创 TAIL Queue數據結構

        看源代碼的時候發現一個新的數據結構,然後我就好好的畫了一下這個數據結構的圖形,一是爲了記錄一下我自己的分析過程,二是和大家分享一下這個數據結構。這個數據結構的名字叫TAIL QUEUE感覺很高大上。所以我想分析一下這個數據

原创 《軟件調試藝術》讀後感七

1、 線程調試         對線程的調試用的最多的可能是thread命令了,查看程序中有多少線程使用Infothreads,進入到某個線程的內部使用thread count,這樣就可以進入到count線程的內部。線程調試中用的最多的還

原创 生產者消費者問題

#include <pthread.h> #include <stdio.h> #include <semaphore.h> #include <string.h> #include <stdlib.h> #define BUFF_SI

原创 automake自動生成Makefile及遇到的問題

大家在Linux下面編寫工程時可能都要遇到一個同樣的問題,就是工程文件太大了編譯的問題。我們可以使用很多方法: 1、       最原始的方法是每次編譯都寫一次gcc命令。 2、       手寫Makefile文件,這個的前提是對Mak

原创 《軟件調試藝術》讀後感四

1、條件斷點       只有符合某種條件時纔在斷點處停止。類似於監視點的工作方式,每當該變量的值發生變化時,監視點都會中斷。條件斷點只會在懷疑有問題的代碼處當變量呈現該懷疑值時才中斷。 設置條件斷點:breakbreak-args if

原创 對android&安卓下jni的單步調試

前提         由於實驗需要,不得不使用單步調試。之前我一直都是繞道而行,最近幾天我發現這個問題不能繞過去,最後選擇了面對。這個過程是殘酷的,試過了好多方法,都沒有成功。最後真是花了九牛二虎之力纔講此配置成功,使用了android

原创 《軟件調試藝術》讀後感五

1、命令+條件中斷和監視點的使用 1.1   監視點        監視點是指示GDB每當某個表達式改變了只,就暫停執行指令。如watch i它會使得每當i改變值時GDB就暫停。也可以使得watch後面的更復雜如:watch (I | j

原创 《軟件調試藝術》讀後感三

1、 GDB調試技        在談這個問題前我們有沒有遇到過這樣的場景,每次要修改一次代碼,然後make,之後gdb調試,然後出gdb中quit,再次修改再次make再次gdb進入再次quit一直重複着一個工作。那有沒有方法可以避免這

原创 《軟件調試藝術》讀後感一

1、預備知識             在進入正題之前要對GDB有一個大概的瞭解,GDB能幹什麼?GDB現在的實用性還有多少?等問題,我們帶着這樣的問題去書中探索,這樣會使我們學到更多的東西。        首先,我看一張圖,這張圖不是我畫

原创 《軟件調試藝術》讀後感二

1、   GDB調試基礎       GDB可以對各種源代碼行、代碼地址、源代碼文件中的行號或函數的入口等。之所以GDB可以對可執行文件進行調試,是因爲在源代碼編譯成可執行文件時使用了gcc命令中的-g選項,這個選項告訴編譯器,在編譯成可

原创 Ubuntu 安裝時黑屏的解決方法

本來前幾天我已經安裝了一個Red hat 的企業版,只可惜它不提供數據源,軟件我可以自己安裝,但是依賴我不可能完全解決,所以決定換系統,最後還是選擇了ubuntu。一如既往的下載系統,然後使用u盤製作啓動盤,一切製作完成,只等待最後的安裝

原创 紅黑樹詳細介紹二

刪除         RB-TRANSPLANT(T,u,v)函數是將u子樹用v來代替,在替換的時候分爲了三種情況,如果u就是root結點則直接替換u,如果樹裏面還包含有其它結點,則將u的左右子樹轉移到v的左右子樹上面。RB-TRANSP

原创 python中的歸併排序

       本來在博客上看到用python寫的歸併排序的程序,然後自己跟着他寫了一下,結果發現是錯的,不得不自己操作。而自己對python不是很瞭解所以就變百度邊寫,終於在花了半個小時之後就寫好了。 def merge(a, first