原创 線程的同步(一)---臨界區

當多個線程訪問一個獨佔性共享資源時,可以使用“臨界區”對象。任一時刻只有一個線程可以擁有臨界區對象,擁有臨界區的線程可以訪問被保護起來的資源或代碼段,其他希望進入臨界區的線程將被掛起等待,直到擁有臨界區的線程放棄臨界區時爲止,這樣就保證了

原创 VC 窗口特效(柵條)

    想做一個柵條特效的窗口,在網上找到一篇VC窗口特效的文章,原文:http://blog.csdn.net/qiaozhangchi/archive/2008/12/11/3497367.aspx,發現並沒有柵條特效,在網上找了很久

原创 帶滾動條的對話框類

在codeproject上看到了個有滾動條的對話框DEMO,原文http://www.codeproject.com/KB/dialog/scroll_dialog.aspx,不過是用SDK寫的,爲了在MFC下使用方便,把它改寫成了類CS

原创 線程的同步(三)---互斥

互斥對象(mutex)能夠確保線程擁有對單個資源的互斥訪問權。實際上互斥對象是因此而得名的。互斥對象包含一個使用數量,一個線程I D和一個遞歸計數器。互斥對象的行爲特性與臨界區相同,但是互斥對象屬於內核對象,而臨界區則屬於用戶方式對象。這

原创 簡單爆破java程序

  最近遇到一個java後臺管理程序在輸入用戶名和密碼登錄時會判斷是否有加密狗存在,如果無狗則不讓登錄。   首先要確定是哪一個文件中判斷狗的存在,我用了比較笨的方法,就是反編譯出每一個可疑的.class文件,看哪一個文件中是處理登錄的,

原创 動態創建Radio Button

項目中遇到要動態創建單選按鈕的情況,把代碼整理如下: 對話框的成員變量: private: std::list<CButton*> m_radioList; //用來保存動態創建的按鈕的指針,便於釋放 對話框的成員函數: priva

原创 線程的同步(二)---事件

事件是一個允許一個線程在某種情況發生時,喚醒另外一個線程的同步對象,或者說當應用程序必須等到發生某事才能訪問資源,應該使用事件對象。 在所有的內核對象中,事件內核對象是個最基本的對象。它們包含一個使用計數(與所有內核對象一樣),一個用於

原创 對話框的隱藏

1.在OnInitDialog中添加     WINDOWPLACEMENT   wp;       wp.length=sizeof(WINDOWPLACEMENT);     wp.flags=WPF_RESTORETOMAXIM

原创 算法

1、xor eax,eax 常見用法: 0041000 call [0041100] 0041006 je 042000 ...... 0041100 ......   //call 調用的子函數 start ...... 0041120

原创 操作技巧

1、在OD中對代碼進行修改後,想要撤消修改,可選中修改過的代碼,右鍵“撤銷選擇處的修改”。   2、OD中,Ctrl+G快捷鍵可到達指定地址處,在代碼窗口、內存窗口、堆棧窗口均有效。   3、跟程序的過程中,如果想要看某個地址表達式的結果

原创 指令詳解

1、test指令 測試指令   格式:TEST DEST,SRC   功能:目的操作數和源操作數按位進行邏輯與操作,結果不回送目的操作數。源操作數可以爲通用寄存器、存儲器或立即數。目的操作數可以爲通用寄存器或存儲器操作數。   例1:  

原创 CListCtrl選中行

1、設置CListCtrl選中行 m_list.SetItemState(nIndex,LVIS_FOCUSED | LVIS_SELECTED,LVIS_FOCUSED | LVIS_SELECTED); 注意:這句代碼只是讓指定行高亮

原创 實現爆破的幾種方法

1、找到關鍵跳轉語句,將其強制改爲跳到註冊成功的地方,如je改爲jne,或者jmp無條件跳轉等。 2、找到關鍵跳轉前面的關鍵call,在call中要返回的地方,修改eax的值(具體改爲什麼要看關鍵跳的語句),即改變了關鍵call的返回值,

原创 脫殼操作

常規操作: 1、尋找OEP:OD載入,找到OEP,停在OEP處(一般在push ebp代碼處)。 2、生成轉存文件:打開LordPE,選中程序的進程,右鍵“修正鏡像大小”,然後右鍵“完整轉存”,輸入文件名,保存。此步也可用OD自帶的插件進

原创 關於windows下IDA遠程調試linux

   以前不會,現在會了,寫篇文章,以防忘記! 1、安裝IDA後,在安裝目錄下會有linux_server程序,將該程序拷貝到linux機器上,比如放在/home目錄下。 2、在linux機器上“./linux_server”運行該程序。