原创 看開源代碼如何解析ELF文件

工具ROPgadget 在ROPgadget中有識別並分析多種文件結構,這次主要用這個功能來分析ELF文件格式。 分析的文件爲libc.so 上代碼 class Binary: def __init__(self, option

原创 在LINUX下的進程資源的限制(STRUCT RLIMIT)

在Linux系統中,Resouce limit指在一個進程的執行過程中,它所能得到的資源的限制,比如進程的core file的最大值,虛擬內存的最大值等。 Resouce limit的大小可以直接影響進程的執行狀況。其有兩個最重要的概

原创 重新審視進程間的通信(一)

最近幹活的時候又被Linux管道和消息隊列搞的一臉懵逼。當初自己走馬觀花似的學習以爲內容很簡單,結果留下了大坑,借來Unix網絡編程來補補,重新審視這兩個部分,並且引以爲戒!!! 首先看管道 #include<unistd.h> int

原创 Cocos2d-x源碼啃食第一談

第一篇博客,先鼓個掌紀念一下,啪啪啪啪。。。 正文開始。 從 CCRef.h 開始 /** Interface that defines how to clone an Ref */ class CC_DLL Clonable { pu

原创 SLAB分配器小結

在遇到類似於越界溢出、迷途指針這些漏洞時,一般會對內存進行覆蓋(比如噴堆),無論哪種重寫方式,無疑都需要了解內存分配器的工作方式。在進行了閱讀,源碼的分析,包括很多博文的幫助下大概摸清了SLAB分配器的脈絡。 SLAB分配器主要的作用是針

原创 從extern說開去(一)

extern符號的主要目的是爲了實現C++對C程序的正確調用,在C++中完美兼容C。 包含的含義主要有兩個方面: (1)extern關鍵字表明函數和全局變量的作用範圍。從鏈接的角度看,意味着在編譯期間會以約定的方式表示引用的在其他模塊中

原创 C++ Template 實踐草稿

針對書中第五章 問題1 : 在重載=後,不同數據類型的stack賦值 template <typename T, template <typename, typename> class CONT> template <typename

原创 C#中通過Process運行Python腳本

<pre name="code" class="csharp"> <pre name="code" class="csharp"><span style="font-family: Arial, Helvetica, sans-serif

原创 重新審視進程間的通信(二)

在UNIX網絡編程中有關消息隊列的內容分兩章,一章Posix標準,一章System V(包括之後的內容都是)。 先看System V。 struct msqid_ds { struct ipc_perm msg_perm; /* s

原创 C++ Template 模版中的名稱(筆記)

1、名稱查找 受限名稱的名稱查找在作用域內部進行,不考慮它的外圍作用於(但是如果作用域是類,查找範圍可以是它的基類)。 非受限名稱可以由內至外在所有外圍類中查找。先查找該類和基類,然後查找外圍類的作用域,也成爲普通查找(含有ADL)。

原创 Own your Android! Yet Another Universal Root(二)

利用 目標 直到現在我們已經看出這是一個典型的UAF漏洞並且一個位於用戶空間迷途的文件描述符指向內核中的PING 套接字可以被攻擊者獲得。接下來我們要填充套接字對象,重新使用這個對象。之後我們可以執行內核中任意代碼,最終完成Andro

原创 簡單分析CVE-2015-1805

CVE-2015-1805這個安全漏洞的年限已久,幾年前就在upstream Linux內核中被發現,並於2014年4月被修復。但不幸的是,並沒有修補完全,直到今年二月C0RE小組告知谷歌該漏洞可以被用於攻擊Android操作系統。 漏

原创 C++ Template 實踐草稿(two)

第8章,p93 “和普通函數一樣,函數模版聲明也可以使用具有缺省調用實參 。。。(一個聲明) template <typename T> void fill (Array<T>*, T const& = T() );//對於基本類型T()

原创 Own your Android! Yet Another Universal Root(一)

CVE-2015-3636漏洞是一個典型的UAF(use-after-free)漏洞,被廣泛用於Android設備的提權。這個漏洞雖然出來已久,但是仍然很有學習價值。它是第一個已知的可應用與Android64位設備的提權漏洞,作爲一個內核

原创 進程間的通信(三)

看了看之後的內容,信號量和共享內存。這兩個都不太熟,算不上再次。 相對共享內存熟悉一點,從它開始吧。 void *mmap(void *addr, size_t len, int prot, int flag, int fd, off_