Time of Update: 2018-12-03
最近沒法忍受筆記本的編譯速度,到太平洋三期買了台組裝機,大概配置如下:CPU:Intel i7 2600K主板:技嘉 Z68x-ud3r-B3記憶體:金士頓 8G DDR3硬碟:希捷 1T 7200轉 32MB系統: win 7 64位買回來後編譯了Chrome,Qt等工程後,發現編譯速度真快。完全編譯Chrome Debug只需要20分鐘左右,編譯Qt Debug和Release版本需要30分鐘左右。然後裝了vmware 7.1.4,在裡面安裝Ubuntu
Time of Update: 2018-12-03
在<簡述漏洞提權>最後提到ret2libc,原書並沒有詳細的資源。但理解這個對以後如何繞開不可執行棧(nx-stack)有很大的協助,鑒於此,我在網路上找到一些相關資料,並進行相應的實驗。The basic idea behind the "Return to Libc" attack is that even though the stack has been marked "Non Executable", it can still be overwritten and
Time of Update: 2018-12-03
stdafx全稱Standard Application Fram Extend。沒有函數庫,只是定義了一些環境參數,使得編譯出來的程式能在32位的作業系統環境下運行。 Windows和MFC的include檔案都非常大,即使有一個快速的處理常式,編譯器也要花費相當長的時間來完成工作。由於每個.CPP檔案都包含相同的include檔案,為每個.CPP檔案都重複處理這些檔案就顯得很傻了為避免這種浪費,AppWizard和VisualC++編譯器一起進行工作,如下所示:
Time of Update: 2018-12-03
在嵌入式中,I2C介面的意義非常重大,許多外圍晶片控制介面都採用I2C。因此,瞭解在驅動模組中如何進行I2C匯流排通訊是很有必要的。我們先看看I2C驅動代碼的樹形結構:.|-- Kconfig|-- Makefile|-- algos| |-- Kconfig| |-- Makefile| |-- i2c-algo-bit.c| |-- i2c-algo-pca.c| |-- i2c-algo-pcf.c| `-- i2c-algo-pcf.h|-- busses|
Time of Update: 2018-12-03
最近在調試ffmpeg的時候發現沒有符號表,google了一下發現ffmpeg給出了一個ffmpeg_g的執行檔案專用來調試。也可以修改Makefile檔案,把這一行注釋掉: # $(STRIP) $@ 這樣就可以直接調試ffmpeg了。STRIP的含義是當最終的可執行程式不需要包含調試資訊時,可使用“strip”去掉可執行程式中的偵錯符號以減小最終的程式大小。(ref) 看來我這個菜鳥對於Makefile的知識還需要補充。
Time of Update: 2018-12-03
一. FireBreath介紹 FireBreath是一個跨平台和跨瀏覽器的外掛程式開發架構,通過Firebreath寫的外掛程式可以運行在windows,linux和mac上的IE,Firefox,Chrome,Opera,Safari等瀏覽器上。FireBreath的主要開發人員是Richard Bateman, 他工作在Facebook,FireBreath裡面使用了不少Facebook貢獻的代碼。Firebreath使用New BSD授權或LGPL授權,官網在http://www.
Time of Update: 2018-12-03
二. Firebreath的實際應用 去年我在給公司開發PC上Widget引擎,這個Widget引擎上面運行WebApp應用,介面和應用邏輯使用HTML+CSS+Javascript實現,而網頁無法實現的功能則由CAR實現(CAR是與COM類似的技術,不過支援反射和AOP編程)。在這個引擎上開發的第一款應用是:類似於91手機小幫手的Android
Time of Update: 2018-12-03
數位音頻系統是通過將聲波波形轉換成一連串的位元據來再現原始聲音的,實現這個步驟使用的裝置是模/數轉換器(A/D)它以每秒上萬次的速率對聲波進行採樣,每一次採樣都記錄下了原始類比聲波在某一時刻的狀態,稱之為樣本。將一串的樣本串連起來,就可以描述一段聲波了,把每一秒鐘所採樣的數目稱為採樣頻率或采率,單位為HZ(赫茲)。採樣頻率越高所能描述的聲波頻率就越高。採樣率決定聲音頻率的範圍(相當於音調),可以用數字波形表示。以波形表示的頻率範圍通常被稱為頻寬。要正確理解音頻採樣可以分為採樣的位元和採樣的頻率。
Time of Update: 2018-12-03
三. FireBreath Helloworld首先需要建立一個自己外掛程式的工程,首先要安裝Python,然後進入命令列後,在Firebreath的原始碼目錄下執行:python fbgen.py,這是將提示輸入一些資訊:Plugin Name:外掛程式的名稱,後面產生的dll將用np+這個名字的方式Plugin Identifier:外掛程式友好的名字,產生的入口cpp檔案將會為這個名字Plugin Prefix:首碼,主要用於visual studio工程Plugin Mime type:
Time of Update: 2018-12-03
最近看到在win7下編譯nodejs的文章《一步一步教你搭建win7下的Node.js服務》,也想自己嘗試一下。編譯需要依賴cygwin和一些模組,我機器上已經安裝了cygwin用於編譯cygwin,但還缺少nodejs需要的openssl-devel,pkg-config等模組,如果用文章介紹的方法,我還得在cygwin的setup.exe裡面一個個選,而且更改源後,很多模組還得重新下載。因此我到網上搜了一些如何單獨給cygwin安裝package的文章,找到了兩篇:《How
Time of Update: 2018-12-03
在上月的note裡面,提到了綁定到0,0,0,0的問題,這個地址就是相當於INADDR_ANY在ubuntu的/usr/include/netinet/in.h定義為:/* Address to accept any incoming messages. */#define INADDR_ANY ((in_addr_t) 0x00000000) 其實這裡有另外幾個相關的問題:1) 當系統有多張網卡時,綁定到INADDR_ANY的程式,發送資料包的時候從哪張網卡發送?2)
Time of Update: 2018-12-03
最新動向webkit,出現了 svn 207 Multi-Status的錯誤:svn: PROPFIND of '/repository/webkit/!svn/bc/19963/trunk/LayoutTests/fast/xpath/4XPath/Core/test.js':207 Multi-Status
Time of Update: 2018-12-03
HTMLElementFactory.cpp和HTMLNames.cpp是由如下規則產生的:ifdef HTML_FLAGS HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in perl -I $(WebCore)/bindings/scripts $< --tags
Time of Update: 2018-12-03
項目需要,最近開始學習Berkeley DB,先列舉一些我能理解的Berkeley DB的優點。一 優點 Berkeley DB提供快速,可靠,和事務保護的記錄儲存。 Berkeley DB是嵌入式資料庫,可以和你的應用方便的運行在同一地址空間,這對高效率的程式來說很有用。 Berkeley DB可以指定每個表的儲存方式,這使得你可以根據這張表的應用環境更加的最佳化程式。(“表”被稱為“資料庫”,“資料庫”被稱為環境)二 缺點 只有漂亮的代碼,但沒有完美的代碼。 互動操作比較簡單:
Time of Update: 2018-12-03
1. 求數組長度求數組長度一般採用的是#define count_of(arg) (sizeof(arg) / sizeof(arg[0])),但這個宏對於指標在編譯是不報錯的,chrome裡面是這麼乾的:template char (&ArraySizeHelper(T (&array)[N]))[N];#define arraysize(array) (sizeof(ArraySizeHelper(array)))void Test(int C[3]){ int A[3];
Time of Update: 2018-12-03
一、圖的分類有向圖、無向圖。有向完全圖和無向完全圖。二、圖的儲存結構1.鄰接矩陣 #define INFINITY INT_MAX /* 用整型最大值代替∞ */ #define MAX_VERTEX_NUM 20 /* 最大頂點個數 */ typedef enum{DG,DN,AG,AN}GraphKind; /* {有向圖,有向網,無向圖,無向網} */ typedef struct { VRType adj; /* 頂點關聯類型。對無權圖,用1(是)或0(否)表示相鄰否; */
Time of Update: 2018-12-03
在2.0版本中,lucene修改索引不再推薦使用IndexModifier類,而是使用IndexWriter。具體的使用在文檔中有詳細的介紹。 以deleteDocuments為例,有如下兩個函數 public void deleteDocuments(Term term) throws CorruptIndexException,
Time of Update: 2018-12-03
聲明:主要內容來自《The Shellcoder's
Time of Update: 2018-12-03
在webkit在win32下的編譯規則(七)中,曾經說到要專門介紹js binding這部分的,但後面逐漸忘記了,最近有網友提起,特加入js binding這部分的介紹。首先來說是js engine,js engine是一個解譯器。解譯器比較直觀的就是命令列(cmd.exe),在命令列中,我們輸入一行指令碼,然後cmd.exe就是解析這段指令碼然後執行。同樣我們也可以將命令寫在bat檔案中,然後讓cmd.exe執行。js
Time of Update: 2018-12-03
好久沒寫部落格了,原因之一是最近習慣了用evernote去記錄自己所想和所看的,另外一個原因是CSDN關閉了live