限定只能在棧或堆上執行個體化的類

今天面試遇到這樣一個問題,要求寫2個類    一個只能在棧上執行個體化   另一個只能在堆上執行個體化。對此問題百思不得其解,面試結束,趕緊求解,深恐遺忘: 只能在堆上執行個體化解構函式設定為私人或受保護的成員,在定義棧對象後,函數結束時,不能調用非公有解構函式,這時也應該提供Destroy(){ delete this },避免造成記憶體泄露。class CHeapOnly{public: CHeapOnly(){} void Destroy() const {

vc 程式效率測試 與 如何擷取系統精確時間

                GetTickCount返回(retrieve)從作業系統啟動到現在所經過(elapsed)的毫秒數,它的傳回值是DWORD。如: DWORD time;       time = GetTickCount();但是GetTickcount函數:它返回從作業系統啟動到當前所經過的毫秒數,常常用來判斷某個方法執行的時間,其函數原型是DWORD GetTickCount(void),傳回值以32位的雙字類型DWORD儲存,因此可以儲存的最大值是2^32 ms約為49.

通過一個宏求某結構體中某元素的位移

#define FIND( struc, e ) (size_t)&(((struc*)0)- >e){ int a; char b; double c; } FIND(student,a); //等於0 FIND(student,b; //等於4解析:         這裡將0轉換為struct指標,即臨時指向NULL,而後擷取struct中e的地址(這裡 編譯器根本不會訪問e中元素內容),最後進行一部強制轉換 轉化為位移量。總結:   

關於R3下的自身進程守護

      一大早的來到圖書館還把我的本本抗來了,就為了寫一篇部落格。      這個部落格其實說來挺愧疚的,原理搞錯了,卻也實現了預期之外的功能,如題R3下的自身進程守護。     

R3下的鉤子線程注入

     好久沒有寫博了,今天一下課就來寫一篇,還是申明一下,菜鳥言論僅供娛樂,大牛看了可以忽略。     最近突發奇想,想試試R3下的線程注入,線程注入有好多中方法,我選得是鉤子函數注入的方法,因為之前一直在做掛鈎嘛,所以做起來比較容易,注入之後幹嘛呢,我又糾結了很久,就把之前的APIHook的程式寫進去吧,也正好想拿Windows的工作管理員開刀一下,掛鈎TerminateProcess函數,成功了。我們直接切入正題。    

一個簡單嗅探器的實現

這是最近的一段代碼。也沒有什麼好說的,簡單的socket編程,設定網卡為混雜模式,接受所有封包,並列印所有封包的基本資料,及內容。#include<stdio.h>#include<winsock2.h>#include<string.h>#include<windows.h>#include<mstcpip.h>#pragma comment(lib,"ws2_32.lib")#define RECVPORT 7000

labview 調用labview產生的動態連結程式庫

      在labview裡面調用labview產生的dll時,若是勾選上  “specify path on diagram“,也就是你想在框圖中指定調用dll的路徑。      若是運行你做好的vi,會發現,labview突然就沒有反應了,而且只能重啟labview。     原因是什麼呢,是因為我們的CLF節點的配置中,忽略了一個東西。 Run in UI thread—Specifies the Call Library Function Node execution must

菜鳥之本地shellcode編寫技術

很久沒有寫部落格了,今天寫寫一個以前沒有寫過的話題,緩衝區溢位shellcode編寫。我是菜鳥,以前沒有寫過shellcode,最近也在忙著網路的滲透,棧溢出也是零零碎碎的看到一些知識,大牛飄過,菜鳥言論僅供娛樂。大家同是菜鳥的人可以看看,我是站在初學者的角度寫這篇文章的,所以初學者應該比較容易理解。對於一些複雜的shellcodet我們暫且先不談,我們先來看看自己編寫一個開啟cmd視窗的shellcode。其實駭客防線上有位大神執筆寫了一系列exploit的編寫,有興趣的人自己去看看。首先我們

關於如何讀取指定對話方塊輸入框中內容

       最近在論壇上看到一個文章,讀取輸入框中的內容,我也正在做這方面東西,於是就動手做了一下,原本以為很簡單的東西,實際著手去做的時候倒是遇到了不小的麻煩。       首先想要獲得一個未知的對話方塊的EDIT控制項的內容無非就是幾個步驟:1,獲得所要獲得內容的控制代碼2,獲得控制項控制代碼3,獲得控制項內容      

如何捕捉視窗按鈕訊息

           如何捕捉一個未知視窗的按鈕按下的訊息?方法多種多樣,這裡我就介紹一種比較常見的方法——鉤子。       原理上很簡單也很容易理解,安裝一個系統的全域鉤子,過濾所有的系統訊息,當然了,可以過濾制定的系統訊息,比如按鈕常用的發給視窗的WM_COMMAND訊息,然後判斷這個訊息的一些屬性,比如發給誰,誰發出的等,來判斷這個訊息是不是我們要找的訊息。       首先第一步,我們要知道我們要監視的按鈕發出了什麼樣的訊息,這個任然可以用spy++查看,如:       

RGB888和RGB565互相轉換

背景:在我們的電腦中映像是以RGB888格式顯示映像的,24位元影像每個像素儲存了32bit的資料,即RGB888+Alpha,Alpha就是半透明填充位元組……但是對於真彩的映像而言,肉眼在16bit的時候已經難以分辨了,因此,有些時候,可以講RGB888轉換為RGB565來儲存,減少了儲存空間的容量的同時,降低了資料量;在後端顯示的時候,再次把RGB565轉換為RGB888,實現資料寬度的匹配!! 一.RGB888->RGB565方法只要提取相應單色高位即可(R5 G6

一個擷取系統服務索引號的小工具

好久沒寫部落格了,最近想抽點時間補上之前的東西,有些東西要記錄下來,以後看了會覺得很有意思。這個小工具沒有什麼可以說的,直接vc編譯串連就可以用了。下面附上代碼:#include "stdio.h"#include <Windows.h>int main(){ printf("請輸入要獲得索引號的函數的名稱:\n"); CHAR apiName[256]; scanf("%s",apiName); //獲得函數地址 FARPROC pAddress1 =

魔獸改鍵自己做

    好久沒寫部落格了,呵呵。今天再來寫一篇。再次申明:菜鳥言論僅供娛樂。最近一直在準備一個比賽,所以進度就慢了下來。突然於幾天前突發奇想想自己做一個魔獸的改建,而且自己覺得也挺簡單的,有現成的鉤子模版,隨便寫寫就行了,哪知道遇到了困難。正應了那就話啊:當你輕視它的時候,他就會輕視你。   

HOOK分發函數實現截獲鍵盤輸入

關心我的同志們可能又要說了,哈哈,這個菜鳥又要發話了,嘿嘿,我菜鳥我榮幸。最近的編程走向白熱化,因為剛開學,所以時間比較多,所以經常泡圖書館。下決心這學期一定搞定核心級編程,大話放出去了,實現與否還得看造化了。剛剛邁入驅動程式設計的老高的門檻,發現原來困難重重,核心程式設計不同於一般的使用者層的介面程式設計,有大量的協助資料,網上的,MSDN,論壇裡的,各種各樣,連綿不絕。到了核心態,協助資料也少了,論壇的回複也少了,錯誤也比以前更難調試了,所以一下子不知道咋辦,手足無措,一連一個星期下來,除了

INF檔案詳解

INF檔案格式要求一個INF檔案是以段組織的簡單的文字檔。一些段油系統定義(System-Defined)的名稱,而另一些段由INF檔案的編寫者命名。每個段包含特定的條目和命名,這些命名用於引用INF檔案其它地方定義的附加段。INF檔案的文法規則:1、要求的內容:在特定的INF檔案中所要求的必選段和可選段、條目及命令依賴於所要安裝的裝置群組件。端點順序可以是任意的,大多數的INF檔案安裝慣用的次序來安排各個段。2、段名:INF檔案的每個段從一個括在方括弧[]中的段名開始。段名可以由系統定義或IN

AdjustTokenPrivileges提權

         最近我在寫一個程式的時候,需要用到ExitWindowsEx函數,使電腦重啟,但是無論怎麼使都是在vc6中可以運行,但是一旦產生了exe檔案,就沒有這種效果,於是乎上網找,上論壇上找,都沒有結果。     

R3下設定全域鉤子截獲鍵盤記錄

       呵呵,最近部落格寫的有點頻繁,我這個人耐不住性子,有點東西就要拿出來讓大家分享一下,雖然不一定都是好的。最近一直在做HOOK,從核心驅動到使用者層的API函數,基本上都嘗試過了,昨天下午搞了一下午,寫了一個R3下設定全域鉤子截獲鍵盤記錄的小程式,雖然網上可能多得是,但是我認為菜鳥貴在自己動手做,哪怕是從網上從書上借鑒來的,你都要自己理解以後上機動手做一遍,這樣你會發現很多你以前從未發現過的東西。    

擷取盤符大小,超大數的處理

呵呵,這也是我無意中弄出來的一個小東西,大牛就飄過吧。這個程式就短短几行代碼,但是值得注意的是裡面一個64位元的輸出轉換問題,說實話我也不是太瞭解,因為編程很少用到這麼一個大的數,先上代碼:#include "windows.h"#include "Winbase.h"#include "stdio.h"int main(){ULARGE_INTEGER nTotalBytes;ULARGE_INTEGER nFreeBytes;ULARGE_INTEGER

already defined in *.obj

造成LNK2005錯誤主要有以下幾種情況: 11.重複定義全域變數。可能存在兩種情況: A、對於一些初學編程的程式員,有時候會以為需要使用全域變數的地方就可以使用定義申明一下。其實這是錯誤的,全域變數是針對整個工程的。正確的應該是在一個CPP檔案中定義如下:int g_Test;那麼在使用的CPP檔案中就應該使用:extern int g_Test即可,如果還是使用int g_Test,那麼就會產生LNK2005錯誤,一般錯誤錯誤資訊類似:AAA.obj error LNK2005 int

我們見證360的成長

      今天下午,我在寫東西,無意間在電腦裡發現了360 4.1的版本,突發奇想想看看過去的360的程式,運行起來後是那個熟悉的介面,很懷舊的感覺,就像測試一下正在編寫的東西,一個API結束進程的小程式,結果360tray.exe進程簡單的就被TerminateProcess結束了,哈哈,算是一個360程式的一個漏洞把。     

總頁數: 61357 1 .... 17069 17070 17071 17072 17073 .... 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.