動態修改其它進程的代碼,實現DLL注入

傳統的遠程進程式控制制方式有利用HOOK技術注入DLL,和利用遠線程在目標進程中建立新的執行線程的方式.遠線程不被win9x所支援,而hook技術會對目標進程效能造成一定的影響.並具可以通過枚舉訊息鏈的方式發現.本文給出一種動態修改目標進程代碼,注入DLL到目標進程的方法,效率高,不需要額外線程.缺點是使用難度大於上面二種辦法,並且修改目標代碼的方法,受到編譯器的影響.使用不同的編譯器時,需要根據編譯器調整動態代碼修改方式.動態修改目標進程代碼,使其載入自已的DLL的思路如下:1.

反qj浩方…

    一直喜歡玩魔獸PRG地圖,少不了用浩方對戰平台,但浩方對我們這些非付費使用者一直是另眼相看,廣告彈得比你關得還快,今天點快了,一不小心就被其裝了雅虎上網助手,受不了了.決定反qj,我的浩方版本是 Ver 4.5.8 Build:0803    先是去掉彈出圖形彈出廣告,先用spy++查查彈出廣告視窗的名字和類名,然後用od重運行GameClient,然後在登陸後,廣告彈出前在ShowWindow下斷點,中斷後,CTRL+F9返回程式領空,發現是如下程式碼顯示的廣告視窗004A46C3  

變數名後面的空括弧

今天隨便地在群裡提了一個簡單的問題:一個擁有預設建構函式的類,當在棧上構造該類的一個執行個體時,變數名後面需不需要加一對空括弧?得到的答案有三種:不需要、也不能加空括弧要加空括弧可加可不加,效果一樣很明顯,只有第1種答案是正確的。如果緊接著追問下去:如果加了空括弧,會有什麼後果?編譯器是報一個錯誤還是讓它順利通過編譯?一些人認為加了空括弧是語法錯誤,其實單就文法上講,加了空括弧並沒有錯誤,這是一條完全符合文法的語句:001    class Foo {002    public:003     

有必要練習一下口才和演講的技巧

    昨天公司開技術會議,其中涉及到了我寫的一個文檔.老總突然叫我給同事們講一下這個文檔.結果我講的效果十分的差.前言不搭後語,自已都不知道自已在說什麼,最後汗水都講了出來.    不善言辭,性格內向似乎是大部分開發人員的通病,其實我在很熟的朋友面前可不是這樣,也能口若懸河,天花亂墜.    有問題要分析,有困難要克服.我先自我分析一下,為什麼我在很多人面前講文檔就這麼戳呢...    一、緊張,害怕自已講不好,就越緊張越講不好。這應該算是心理上的障礙,可以試著通過自我訓練來克服。    二、

今天看到二個”編譯器”,有感.

作為一個立志研究編譯器技術的IT從業人員,國人自已的編譯器相關的東西比較少.今天在CSDN上看到二條與編譯器有關的新聞,我很是感興趣,點進去一看,卻是大失所望.先是第一個,題目是"中國人自已的編譯器"根據連結進去一看,卻是一個漢化了的ASM.我實在不知道開發語言非要和漢語扯上關係,然後就是中國人自已的了,更不要說漢化了的組合語言?例如"mov eax, 0" 難道我敲成  "移動資料

人肉保證,Delphi中的out參數

Delphi裡面,用關鍵字var或out,可以讓函數參數按傳遞引用,奇怪的是,var和out根本沒有本質上的區別,按官方的說法:An out parameter, like a variable parameter, is passed by reference. With an out parameter, however, the initial value of the referenced variable is discarded by the routine it is

前置處理器,詞法分析器完成

前置處理器,詞法分析器完成,不過這二個只算是編譯器中最簡單的部分,前路漫漫呐.前置處理器很簡單,就是去注釋.如果打算加上宏或編譯指令支援的話,也不大難.詞法分析器以前做過PASCAL語言的,這次實現的是一個類C#語言的,需要加上對字串中轉義符的支援.做編譯器的好處是,能自己得到很多以前不瞭解的知識,比如一個語言為什麼要這樣設計,有的是技術上的限制,有的是文法語義上的考慮,這些都是書上學不到的東西.打完一段字發現肚子餓了.出門吃飯

Saipan編譯器結構

我開發中的編譯器名字暫時叫"Saipan" ,就是塞班島的意思,那是個美麗的地方.目前它分為已下幾個模組預先處理->詞法分析->文法分析->語義分析->位元組碼產生    以及 符號管理,類型系統,屬性管理,錯誤處理 等幾個部分,並在文法分析和語義分析中完成一些屬性的計算.各個模組大概功能如下:預先處理:         目前只是簡單的去注釋  (已完成)詞法分析:     將原始碼拆分成一個個的標識符,並判斷出基本類型,例如關鍵字,運算子,立限數 (已完成)文法分析: 

與封裝性何幹?

剛剛看到的一篇文章,關於C++的封裝性(http://blog.csdn.net/ac1998/archive/2006/10/08/1326184.aspx),大致明白了作者的意思,只是覺得文中所提到的問題與封裝性沒什麼關係,另外有的地方遣詞用句讓人誤會,比方說這句:調用者看到了private裡面的具體實現的細節!——這極大破壞了封裝性。破壞了一個基本的OO原則。Java、C#、Delphi都有同樣的private或protected,難道因為在private裡面放了欄位就破壞了封閉性嗎?這個

為什麼我用emacs

 本來從未打算過寫這類東西,自己用什麼只是自己的事,但最近在網上見過很多貼子中的回複,認為用emacs和vi"之流",棄強大的IDE不用,純屬裝牛B.  對於這種可能連emacs,vi和記事本的區別都沒搞清,卻非要把我和其它emacs,vi使用者定性為裝B的人,實在沒啥好說的,算算自己從初三後開始自學編程,到現在也有8年多了吧.由於自學,難免學得雜,不完全回憶,接觸過(接觸就是起碼在上面寫過程式,編譯並跑過)的開發工具有,QBasic,TC,TP,DBASE,foxpro,redasm,PLT(

順時針?逆時針?

不同的人,同時盯著左邊這張圖看,看到圖中女子的旋轉方向有不同的感覺,有的人認為是順時針在轉動,有的人正相反,認為是逆時針的。問題的關鍵在於圖中是個剪影,在某種角度,從剪影是無法判斷你看到的是人的正面還是背面,當你覺得她是順時針逆轉時,你認為她是右左腳支撐,以右左腳為軸。相反,當你感覺她是逆時針轉時,你會看到她是左右腳支撐,以左右腳為軸。 下面是一張簡化、放慢了速度的動畫,這張圖說明了為什麼人會有不同的感覺

養成用try…finally的習慣

經常看到有人在分配了一個資源(如建立對象、申請記憶體、開啟控制代碼等)後,不習慣用try...finally來確保資源得以釋放,比如這篇轉貼的貼子 ,有如下一段代碼(原來的注釋被我去掉了):001 var002 reg:TRegistry;003 s:String;004 begin005 reg:=TRegistry.Create;006 reg.RootKey:=HKEY_CURRENT_USER;007 if

放棄,才有所得。

     覺得自己在技術上又到了一個必需放棄一些東西的時候了  前段時間學了保護模式編程,就有用WinGDB調試WIN核心,瞭解一下其內部實現的衝動,也有看看FreeBSD的代碼,自己實現一個支援保護模式,多任務,虛擬記憶體的簡單os的衝動.       一直很喜歡編譯技術,現在在用lua語言,又有看看lua原始碼的衝動。想研究文法和語義,就想看看和面向過程,物件導向完全不同思想的函數式語言,就又有想學lisp的衝動.      

本命年說狗(Chinese Foo Dog)

今天偶然看到了RFC3092,講FOO和BAR的含義和起源,我倒並不在乎foo代表的是“張三”還是“李四”,只是在相關文獻中看到了“Chinese Foo Dog”,譯文應該叫“中國福犬”吧?初看上去特別象老婆最喜歡的“松獅”,再仔細找了找相關文檔,原來只是有松獅的血統。但我覺得也許比松獅還要名貴(我不是發燒友,只是瞎猜),據說是絕跡已久,後來在新疆被發現,又稱龍犬、天犬,常做為寺廟的吉祥物,古建筑前的類石獅雕像也會被稱為Foo Dog。真是漂亮的狗,可惜太名貴,養不起。

編譯器開發: 利用圖的拓撲排序演算法,計算原始碼檔案之間的依賴關係

    我們平常所使用的主流編譯器,都具有多原始碼檔案支援.例如把一些類定義在相應的檔案中,要使用到這些類時,需要包含定義這個類的檔案(如C++),或引用類所在的名字空間(如JAVA),或將這個檔案作為單元引用(如Object Pascal)    當我們自己要實現一個支援多原始碼檔案的編譯器時,需要在編譯某個原始碼檔案之前,先編譯這個原始碼所引用到的檔案.例如有一個源檔案 a.src,裡面定義了一個類,內容如下:class List{    public void Add(Object

Borland一路走好

今天在CSDN首頁看到了 Borland計划出售IDE產品線的訊息,心中隱有一絲悲傷.雖然我本身己漸離DELPHI, BCB遠去,但Borland一直是我心中最喜歡的軟體公司.特別是DOS時代,那經典的TC和Trubo Pascal,還記得用Basic入門的我,用Trubo

兄弟們,走好

六月都市的天空,抬頭看不見星星.畢業設計,答辨搞定了,然後就是過幾天照畢業照,吃散夥飯,哭一場或醉一場.然後4年的大學生活,就這樣逝去小陳陳想回夾江考公務員,波波娃可能回他老家德陽,佳娃倒是滿懷激情的上班了,大家一天天的改變著.多年後,我們還會記得宿舍裡的夜半歌聲,電飯煲中的自製火鍋嗎?倒想起那個笑話,四年學習生活,是我們上了大學,還是大學上了我們,或者接著再被社會強姦 兄弟們,走好

emacs auto-complete

    晚上在家寫自己的網遊服務端底層庫,休息時在網上閑逛,無意中發現一篇介紹emacs auto-complete的文章,正是自己想要的東西。比hippie-expand使用更方便,快捷。於是便下載下來,配置成功。另補充原文沒有詳細講解的二點:    產生etags:在工程目錄下執行 find -name "*.h" -or -name "*.cpp" -or -name "*.c" |xargs     etags --members --language=c++    使用etags:M-

實現一個lua 調試器

簡介:  LUA沒有內建調試器,只提供了一套調試庫,可以實現符合自己需要的調試器.晚上沒事,改寫了一下以前的一個GDB風格的LUA調試器,可嵌入到應用程式中,在需要的時候觸發並調試,有需要的朋友可以參考下. 支援如下命令:    h             協助資訊    c             繼續動行    s             單步運行(不跳過函數調用)    n             單步運行(跳過函數調用)    p var         列印變數值    b

IP表搜尋

最近一個項目,需要根據給定的IP地址,查出它的線路類型(電信、網通、鐵通……),很明顯,二分法的效率比線性搜尋要高,雖然目前IP表只有300條記錄,但是好的演算法總是應該被使用的。抽象聲明:class IpKind {public:virtual ~IpKind(void) {}virtual bool addItem(const unsigned ip, const unsigned mask, const int kind) = 0;virtual bool find(const

總頁數: 61357 1 .... 16132 16133 16134 16135 16136 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.