原创 NDK開發實例
最近因爲項目的需要研究了一下NDK的使用,在測試NDK的時候也遇到一些問題,趁熱打鐵把這塊知識點整理回顧一下。 先說說JNI和NDK的區別: NDK (Native Development Kit) 是google提供個一套工具,包括:
原创 Android2.3.3源碼編譯
參考: http://source.android.com/source/initializing.html 編譯Android源碼的時候make有幾十次了吧,一度還中斷了幾天不想再去調錯誤,當時覺得各種莫名其妙的錯誤,但是當編譯通過之
原创 重裝gcc4.4.3版本的錯誤整理
在ubuntu12.04下,編譯Android2.3.3的時候提示一些致命錯誤,調試了很久都沒有成功,網上有說要gcc4.4.3版本纔可以編譯通過(現有的gcc版本是4.7.2),於是只好嘗試一下。重新安裝gcc比想象的要麻煩,詳細過程參
原创 從elf中讀取函數地址
先準備一份測試代碼: #include <stdio.h> void funcUp(void) { printf("Hello world 1!\n"); return; } int main(int argc, c
原创 學習筆記:複製(拷貝)構造函數
參考: http://blog.csdn.net/lwbeyond/article/details/6202256 http://blog.csdn.net/feiyond/article/details/1807068 一個空類產生的
原创 學習筆記:二叉樹後序遍歷非遞歸算法
#include <stack> #include <iostream> using namespace std; typedef struct BiTNode{ int data; BiTNode *lchild, *rchild
原创 ARM彙編模塊內部數據訪問初步分析
因爲任何一條指令與它需要訪問的模塊內部數據之間的相對位置是固定的,只需要相對於當前指令加上固定的偏移量就可以訪問模塊內部數據了。 現有C代碼如下: struct binder_state *bs; void *svcmg
原创 學習筆記:構造函數
構造函數是特殊的成員函數,只要創建類類型的新對象,都要執行構造函數。 構造函數的工作是保證每個對象的數據成員具有合適的初始值。 構造函數的名字和類的名字相同,並且不能指定返回類型,像其他任何函數一樣,它們可以沒有形參,也可以定義多個形參。
原创 Android shellcode學習筆記
http://bbs.pediy.com/showthread.php?t=155774 http://hi.baidu.com/warptencq/item/9ee464af009fd6268819d3f2 (to be contin
原创 學習筆記:從PC連到某個網站的詳細過程
參考:http://zhidao.baidu.com/link?url=johGUOB5uPcPWZf35zHEHssFBWfXHkzhb-KuWCMImRrHfmWU5JNk5R_mHMsCZTs1HJ_0wxkxFlvtuGszsu9
原创 ARM指令機器碼和案例分析
先千篇一律的上個圖: [28:31] cond: 指令執行條件編碼 [26:27] : 保留 [25] X: 決定採用“立即數尋址(置1)”還是“寄存器尋址(置0)” [21:24] opcode: 操作符(如MOV、LDR等)所對
原创 學習筆記:操作系統內核基礎知識
Inter x86系列處理器使用“環”的概念來實施訪問控制,共有4個權限級別。由高到低分別爲ring0,ring1,ring2,ring3。 Windows和Linux等多操作系統在Intelx86處理器上只使用了ring0和ring3(
原创 ios獲取內存鏡像模塊基址
參考: https://developer.apple.com/library/ios/documentation/System/Conceptual/ManPages_iPhoneOS/man3/dyld.3.html http://
原创 判斷內存地址是否缺頁
一個進程的內存是否加載到物理內存,系統是有記錄的。記錄文件就是/proc/$pid/pagemap pagemap和內存地址的對應關係: file_offset = virt_addr / PAGE_SIZE * PAGEMAP_E
原创 崩潰後程序保持運行狀態而不退出
參考: http://blog.csdn.net/langresser_king/article/details/8288195 http://stackoverflow.com/questions/2663456/how-to-wri