vc2008靜態編譯
『壹』 在VC里如何用Makefile文件編譯
在Visual C++中編譯使用Makefile文件,首先打開命令提示符(cmd.exe)或在Windows 9x中使用command.com,然後進入Visual C++的bin目錄,運行vc-vars32.bat設置環境變數。之後進入Makefile所在的目錄,並使用nmake /f makefile進行編譯。從sourceforge下載的libjpeg源代碼包含了一個makefile.vc文件,通過nmake /f makefile.vc [nodebug=1]可以編譯靜態庫,但若需編譯成dll,以便在如emacs等程序中使用,則需對makefile.vc和jmorecfg.h文件進行修改。
在makefile.vc文件中,需添加編譯dll的規則如下所示:
libjpeg.lib: $(LIBOBJECTS)
$(RM) libjpeg.lib
lib -out:libjpeg.lib $(LIBOBJECTS)
添加以下行:
libjpeg.dll: $(LIBOBJECTS)
$(RM) libjpeg.dll
link -dll -out:libjpeg.dll $(LIBOBJECTS)
在jmorecfg.h中添加:
#define _WIN32_
#define JPEG_DLL
修改完成後,使用nmake /f makefile.vc nodebug=1即可編譯。
將makefile復制為.mak文件,通過Visual C++打開即可,.mak文件實質上就是一個makefile文件,它能夠指定編譯的具體命令,以及必須先設置VC命令行環境。
vcvars32.bat用於設置環境變數,在Visual C++ 98的bin目錄下執行nmake /f XXXX.mak,如果有makefile文件,則直接使用nmake即可。
這種方法適用於需要自定義編譯規則或特定環境配置的情況,通過修改makefile文件,可以實現更靈活的編譯方式。
『貳』 如何用vs和makefile文件進行編譯
運行cmd.exe (or command.com in win9x)->進到vc/bin目錄->運行vc-vars32.bat->進到makefile 所在的目錄->nmake /f makefile
從sourceforge上下載下來的libjpeg源代碼中有一個makefile.vc的文件,可以通過nmake /f makefile.vc [nodebug=1]來編譯libjpeg,但是只能編譯靜態庫,如果需要編譯dll以便在emacs等程序中使用的話,需要修改makefile.vc和jmorecfg.h文件。在makefile.vc文件中添加編譯dll規則:
以下內容為程序代碼:
libjpeg.lib: $(LIBOBJECTS) $(RM) libjpeg.lib lib -out:libjpeg.lib $(LIBOBJECTS) #
添加以下這行 libjpeg.dll: $(LIBOBJECTS) $(RM) libjpeg.dll link -dll -out:libjpeg.dll $(LIBOBJECTS) 在jmorecfg.h中添加#define _WIN32_#define JPEG_DLL 然後nmake /f makefile.vc nodebug=1就可以編譯了。
將makefile復制為一個.mak文件,然後用VC打開即可!
.mak 就是一個makefile
可以指定怎樣編譯(命令行,必須先設置VC命令行環境)
vcvars32.bat可設置環境,在vc98/bin下 nmake /f XXXX.mak
如果有一個makefile就只要nmake就可以了。
『叄』 VB或VC編譯的DLL文件可以部分反編譯嘛
"DIONNELLE" 為常量,所以會放在程序的某個地方,有一個地址。
md5(md5(md5("DIONNELLE"))); 這樣子是沒有什麼作用的。
反匯編出來也是幾個push和call而已,沒有什麼作用
//////////////
VB\BC等編譯過的DLL文件,目前還不能完全反編譯
無論是exe還是dll都可以反匯編,即使靜態不行,也可以動態調試。
破解反匯編就行 了,不一定要反編譯。
//////////////////////////////
可以得到字元串的話,有可能得到是MD5三次循環嘛?
根據call的調用地址,絕對可以看出你是對同一個函數的三次調用。
至於看出你是否採用的是md5演算法。這是根據代碼的特徵分析的。
如果要防止破解,最好給程序加上自己寫的強殼,技術有很多我也說不了
,我也是略知一二而已,就不多說了。
『肆』 易語言的靜態編譯用的哪個什麼VCLINK是c++的
易語言沒有自己的編譯器,但他用的是VC的編譯器。非靜態編譯:易語言因為沒有自己的靜態編譯器,如果不使用別人的編譯器,你編譯出去的軟體,將會把你軟體用到的函數和命令所屬的支持庫,DLL等都編譯進軟體或軟體同目錄,即使你不是用到庫的全部命令,也會被把所有用到命令的很多支持庫,整庫編譯進去,這樣導致了軟體體積巨大,還會影響軟體效率。。靜態編譯:易語言因沒有自己的靜態編譯器,所以用的是VC的編譯器。使用靜態編譯的好處就是,當你調用了很多庫裡面的命令時候,不需要把這么多庫都帶上編譯出去。靜態編譯可以讓他從庫中脫離出來,只編譯被調用到的命令部分。這樣減輕了軟體的體積負擔和運行效率。。。現在明白了吧!呵呵!記得採納哦!!
『伍』 VC++ Dll文件可以反編譯嗎
可以的。
1、Dll文件和EXE文件一樣,都屬於Windows可執行文件,都遵守PE文件格式。
2、靜態反匯編可以通過IDA等軟體來進行,動態反編譯可以通過Windbg、Ollydbg來進行。以OllyDbg為例,把要反編譯的DLL文件拖到其界面中即可看到其反匯編代碼。