原创 《操作系統真象還原》讀書筆記 第0章

0x1 軟件訪問硬件的方法 軟硬件之間的訪問是依賴於各種硬件設備,也就是IO接口。接口就是生產硬件的標準,所有硬件必須按照這個標準才能讓軟件和硬件互通。 硬件在輸入輸出上分爲並行和串行兩種方式,相應接口也就是串行和並行接口。串行硬

原创 服務調試

0x服務簡介 我們在進行一些程序分析時會發現有些程序會調用服務控制管理器,用服務的形式運行了一段代碼,這就是常見的創建服務程序。 它的核心原理就是首先在SCM(Service Control Manager)下創建一個子進程,讓這

原创 《操作系統真象還原》讀書筆記 第2章

0x1 計算機啓動過程 爲什麼程序要載入內存 CPU的硬件電路被設計成只能運行處於內存中的程序,是因爲內存內存運速快,且容量大。其次,操作系統可以存儲在軟盤上,也可以存儲在硬盤上,甚至U盤 什麼是載入內存 所謂載入內存,大致上分爲

原创 網絡學習的思考

學習原因 這我對計算機網絡學習的一個新的開端。說來慚愧,在大學四年中我只是不斷學習理論知識,但是卻從來沒有想要自己動手實踐過,導致畢業後的迷茫。現在我要重拾心態,好好將理論基礎與實踐結合,探索知識本源。還有一個原因,畢竟計算機網絡

原创 脫殼 !EP(EXE PACK)1.2

0x1 查殼 將程序拖入!Exeinfo PE顯示如下。 程序拖入OD 看到第一行有pushad指令,利用ESP定律,執行一步F8。ESP定律是典型的堆棧平衡,因爲只要保存了所有寄存器的值都是要開始解密操作,等到解密完成後一般

原创 脫殼學習資源

Tuts4you論壇的脫殼動畫pdf演示,很值新手進行脫殼學習。鏈接: https://pan.baidu.com/s/1GiLav9TZelEYcCGezx9aCQ 提取碼: gbjb。

原创 指令執行原理

8086的CPU分爲執行部件(EU)和總線接口部件(BIU)。 程序指令執行原理: 1)當CS:IP設置好後,BIU會從設置好的地址根據對應架構的指令格式不停的按順序讀取指令,並將指令放在指令隊列緩衝器裏等待執行控制部件控制電路執行 2)

原创 Windows窗口程序

什麼是窗口 想要深入瞭解Windows機制就必須從我們隨處可見的Window(窗口)說起。窗口就是我們在使用圖形程序時,屏幕上顯示的矩形區域。不同的窗口可能包含一些相同組成部分,如:窗口外沿,就是我們用於拖拽窗口移動位置的外邊框。標題欄,

原创 8086中斷處理過程

當外設向CPU發送可屏蔽中斷請求: 1)8259中斷控制器通過INTR信號線發送高電屏請求信號 2)CPU在每執行一條指令的最後一個時鐘週期時會採樣INTR信號線判斷有無新的中斷請求,如果INTR標誌爲1(也就是有中斷請求)CPU就會首先

原创 安卓逆向學習——APK結構

APK是Android系統上的一個安裝文件,我們從網絡上下載一個app應用時首先要下載它的安裝包。這個安裝包的本質其實還是一個打包好的壓縮文件。我們在自己的電腦上下載好APK後,把APK後綴更改爲.zip就可以直接看到內部文件的結

原创 一個win32程序的編譯內容

程序員在編寫一個Win32程序與編寫一個32位控制檯程序有些許不同。Win32程序除了代碼邏輯需要程序編寫外,還需要編寫對應的資源文件。 一個windows圖形化程序的編寫過程如下: 編寫代碼和資源文件->通過編編譯器轉換成可鏈接的機器代

原创 x86彙編語言簡介

彙編語言是最古老的編程語言,它是所有語言中最接近原生機器語言的。它擁有直接訪問計算機硬件的特權。 彙編器和鏈接器 彙編器是一種工具程序,用於將彙編語言符號轉換成機器語言的“0101”二進制。鏈接器同樣也是工具程序,通過鏈接器把彙編器生成的

原创 安卓逆向學習——IDEA動態調試

我們獲取包名和程序入口活動名還可以通過一條命令來實現 adb shell dumpsys activity top 這條命令代表獲取當前系統運行的所有進程的包名和入口活動名和PID。 安裝並打開IDEA,配置JDK和SDK的位

原创 安卓逆向學習——Fiddler的安裝和使用

Fiddler和Charles這兩款工具都是用於手機的網絡抓包,Charles主要用於Mac操作系統使用而且是收費工具,所以一般我們都是用FD進行抓包的。 我們知道Http是非安全的超文本傳輸協議,而Https是在Http協議基礎

原创 安卓逆向學習——動態調試

安裝好AndroidStudio後設置JDK和SDK路徑 安裝Smali插件 選擇你的Smalidea插件的位置 添加插件 接下來把要安裝的apk安裝到模擬器上運行該進程 打開AS,選擇打開項目,直接導入AK反編譯的