原创 qemu-參數解析

啓動命令: gdb –args /usr/bin/bin/qemu-system-x86_64 linux-0.2.img -m 512 -enable-kvm -smp 1,sockets=1,cores=1,threads=1

原创 Android虛擬機內存參數說明

ART的比較複雜,這裏分析dalvik虛擬的的參數,和art參數的概念是一致的 -xms: 虛擬機堆的起始大小,啓動時申請的堆內存大小 prop:dalvik.vm.heapstartsize指定 -xmx: 虛擬機堆使用的虛擬內

原创 arm32 stack check

arm64 反彙編分析分析了armv8的stack check原理, 這裏分析下arm32的原理 基本流程和arm64一致,我們看下arm32如何保存canary值,  __set_tls ENTRY(__set_tls) m

原创 ida使用技巧

注意一定要選對調試器版本,比如armeabi-v7a 和armeabi都是32位的庫,如果使用64位調試器,下斷點的時候調試器就會報告內存錯誤 Error: Oops! internal error 30066 occured.

原创 netty nio模型

由於littleproxy 使用netty nio作爲網絡框架,線程模型令人眼花繚亂,不得不好好分析一下,其實和glib的gmainlooper以及Android 的threadLooper基本上是一個思路,就是使用任務隊列,po

原创 qemu2的qom系統分析(二)規範路徑和屬性

我們在qemu2的qom系統分析(-)對象系統 一文中分析過qom系統如何通過TypeInfo註冊對象,和對象的創建,繼承,實現。 qom系統除了這些能力,還提供了引用計數能力,和屬性設置,規範路徑的能力。 規範路徑的能力其實就是

原创 Android 各種截屏方法

1 應用內截屏(無SurfaceView, TextureView) boolean cacheEnable = captureView.isDrawingCacheEnabled(); captureView.setDrawin

原创 pci(一)說明

pci總線,如果不說人話的話,那是相當複雜的, 難以理解的。 說起pci總線要從總線開始: 微機原理上這麼說:計算機系統是由許多具有獨立功能的模塊互相連接組成的。 同時,隨着計算機的不斷髮展和廣泛應用,各廠商處理向用戶提供整套系統

原创 qemu 內存模型(1)---文檔

首先閱讀qemu的memory.txt文檔, 大概有如下信息可知 1 首先AddressSpace是cpu可以看到的地址空間,一般就是cpu地址總線寬度的可尋址範圍 主要包括兩個地址空間 1 ram 空間 , 通過mov等指令直

原创 ubuntu編譯內核並更換

1 下載內核 https://www.kernel.org/ 隨便找一個內核下載,筆者以最新的linux-5.4.7 爲例子 tar xvf linux-5.4.7.tar.xz cd linux-5.4.7 cp /boot/

原创 Android資源索引--resources.arsc

背景         對於Android來說,爲了方便開發,一方面方便資源的管理,提高代碼的可讀性,另外一方面方便適配,Android實現了資源和代碼分離。要想做到資源代碼分離需要解決以下幾個問題: 簡單編程 方便適配(根據不同

原创 追查一次/tmp目錄打滿的問題

lsof | grep /tmp COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME qemu-syst

原创 apktool反編譯資源分析

緣起         我爲什嗎要研究apktool的資源反編譯呢,這是因爲我最近在反編譯抖音620版本的時候發現不能反編譯成功,主要是對資源的反編譯過程失敗,我其實不太關注資源的反編譯,因爲我只想研究它的源碼,我可以通過-r選項來

原创 ubuntu編譯gcc

1下載 China https://mirrors.ustc.edu.cn/gnu/ http://mirrors.ustc.edu.cn/gnu/ ftp://mirrors.ustc.edu.cn/gnu/ rsync://

原创 aapt字符串池

背景 Android資源對字符串的索引使用字符串池, 爲什麼要建立字符串索引呢? 目的有兩個: 壓縮空間 加快查找速度         怎麼壓縮空間呢?對於Android資源的字符串索引其實就是將重複的字符串合併。