亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解析C/C++?Capstone?引擎源碼編譯問題

 更新時(shí)間:2022年09月08日 11:45:24   作者:lyshark  
Capstone的編譯非常簡(jiǎn)單只需要一步即可輕松得到對(duì)應(yīng)的Lib庫(kù)文件,如下將介紹該引擎如何被編譯,以及簡(jiǎn)單的測(cè)試編譯,這篇文章主要介紹了C/C++?Capstone?引擎源碼編譯,需要的朋友可以參考下

Capstone 是一個(gè)輕量級(jí)的多平臺(tái)、多架構(gòu)的反匯編框架。Capstone 旨在成為安全社區(qū)中二進(jìn)制分析和反匯編的終極反匯編引擎。Capstone的編譯非常簡(jiǎn)單只需要一步即可輕松得到對(duì)應(yīng)的Lib庫(kù)文件,如下將介紹該引擎如何被編譯,以及簡(jiǎn)單的測(cè)試編譯。

Capstone 源碼下載地址:https://github.com/capstone-engine/capstone

下載好以后直接打開項(xiàng)目,切換到msvc目錄下,該目錄下就是引擎的編譯入口,我們直接打開capstone.slh文件,設(shè)置平臺(tái)工具集為編譯器的版本。

在右側(cè)選擇capstone_static也就是編譯為靜態(tài)庫(kù),然后直接編譯文件。

編譯成功后直接將其中的capstone.lib庫(kù)文件拿出來(lái),64位也是如此操作。

編譯成功后會(huì)得到兩個(gè)文件,直接新建lib目錄,將其放進(jìn)去。

然后再將項(xiàng)目中的include文件一并拷貝到新建的目錄下。至此庫(kù)就編譯好了。

當(dāng)需要在項(xiàng)目中使用該庫(kù)時(shí),只需要簡(jiǎn)單的引入到項(xiàng)目中。

接著新建一個(gè)項(xiàng)目,寫入如下一段測(cè)試代碼,編譯執(zhí)行即可實(shí)現(xiàn)對(duì)特定字符串的反匯編操作。

#include <stdio.h>
#include <inttypes.h>
#include <capstone/capstone.h>

#pragma comment(lib,"capstone32.lib")

int main(int argc, char *argv[])
{
	char *buffer = "\x55\x8b\xec\x81\xec\x24\x03\x00\x00\x6a\x17\x90\x90\x90";

	csh handle;
	cs_insn *insn;
	size_t count;

	int size = 14;

	printf("By: LyShark \n\n");
	// 打開句柄
	if (cs_open(CS_ARCH_X86, CS_MODE_32, &handle) != CS_ERR_OK)
	{
		return 0;
	}

	// 反匯編代碼,地址從0x1000開始,返回總條數(shù)
	// https://www.cnblogs.com/lyshark
	count = cs_disasm(handle, (unsigned char *)buffer, size, 0x1000, 0, &insn);

	if (count > 0)
	{
		size_t index;
		for (index = 0; index < count; index++)
		{
			for (int x = 0; x < insn[index].size; x++)
			{
				printf("機(jī)器碼: %d -> %02X \n", x, insn[index].bytes[x]);
			}

			printf("地址: 0x%"PRIx64" | 長(zhǎng)度: %d 反匯編: %s %s \n", insn[index].address, insn[index].size, insn[index].mnemonic, insn[index].op_str);
		}

		cs_free(insn, count);
	}
	else
	{
		printf("反匯編返回長(zhǎng)度為空 \n");
	}

	cs_close(&handle);

	getchar();
	return 0;
}

預(yù)覽效果如下:

文章作者:lyshark (王瑞)
文章出處:https://www.cnblogs.com/LyShark/p/16667985.html
版權(quán)聲明:本博客文章與代碼均為學(xué)習(xí)時(shí)整理的筆記,文章 [均為原創(chuàng)] 作品,轉(zhuǎn)載請(qǐng) [添加出處] ,您添加出處是我創(chuàng)作的動(dòng)力!
轉(zhuǎn)載文章,請(qǐng)遵守《中華人民共和國(guó)著作權(quán)法》相關(guān)規(guī)定或遵守《署名CC BY-ND 4.0國(guó)際》禁止演繹規(guī)范,合理合規(guī),攜帶原創(chuàng)出處轉(zhuǎn)載。

到此這篇關(guān)于C/C++ Capstone 引擎源碼編譯的文章就介紹到這了,更多相關(guān)C++ Capstone 引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c++中string類成員函數(shù)c_str()的用法

    c++中string類成員函數(shù)c_str()的用法

    c_str()函數(shù)返回一個(gè)指向正規(guī)c字符串的指針,內(nèi)容和string類的本身對(duì)象是一樣的,通過(guò)string類的c_str()函數(shù)能夠把string對(duì)象轉(zhuǎn)換成c中的字符串的樣式
    2013-09-09
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語(yǔ)言超詳細(xì)講解指向函數(shù)的指針

    C語(yǔ)言超詳細(xì)講解指向函數(shù)的指針

    C語(yǔ)言程序在編譯后,每個(gè)函數(shù)都有一個(gè)首地址(也就是函數(shù)第一條指令的地址),這個(gè)地址稱為函數(shù)的指針??梢远x指向函數(shù)的指針變量,使用指針變量間接調(diào)用函數(shù)
    2022-07-07
  • C++Node類Cartographer開始軌跡的處理深度詳解

    C++Node類Cartographer開始軌跡的處理深度詳解

    這篇文章主要介紹了C++Node類Cartographer開始軌跡的處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-03-03
  • C語(yǔ)言創(chuàng)建鏈表錯(cuò)誤之通過(guò)指針參數(shù)申請(qǐng)動(dòng)態(tài)內(nèi)存實(shí)例分析

    C語(yǔ)言創(chuàng)建鏈表錯(cuò)誤之通過(guò)指針參數(shù)申請(qǐng)動(dòng)態(tài)內(nèi)存實(shí)例分析

    這篇文章主要介紹了C語(yǔ)言創(chuàng)建鏈表錯(cuò)誤之通過(guò)指針參數(shù)申請(qǐng)動(dòng)態(tài)內(nèi)存,是鏈表創(chuàng)建過(guò)程中非常常見的經(jīng)典錯(cuò)誤。實(shí)例中做了較為詳盡的分析,需要的朋友可以參考下
    2014-09-09
  • C++中的幾個(gè)特殊符號(hào)說(shuō)明

    C++中的幾個(gè)特殊符號(hào)說(shuō)明

    這篇文章主要介紹了C++中的幾個(gè)特殊符號(hào)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 基于C++編寫一個(gè)密碼系統(tǒng)

    基于C++編寫一個(gè)密碼系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何基于C++編寫一個(gè)簡(jiǎn)單的密碼系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 詳解C++實(shí)現(xiàn)匈牙利算法

    詳解C++實(shí)現(xiàn)匈牙利算法

    匈牙利算法是一種在多項(xiàng)式時(shí)間內(nèi)求解任務(wù)分配問題的組合優(yōu)化算法,并推動(dòng)了后來(lái)的原始對(duì)偶方法。美國(guó)數(shù)學(xué)家哈羅德·庫(kù)恩于1955年提出該算法。此算法之所以被稱作匈牙利算法,是因?yàn)樗惴ê艽笠徊糠质腔谝郧靶傺览麛?shù)學(xué)家Dénes K&#337;nig和Jen&#337; Egerváry的工作之上創(chuàng)建起來(lái)的
    2021-06-06
  • C語(yǔ)言 語(yǔ)義陷阱超詳細(xì)梳理總結(jié)

    C語(yǔ)言 語(yǔ)義陷阱超詳細(xì)梳理總結(jié)

    這篇文章主要介紹了C語(yǔ)言常見的一些語(yǔ)義陷阱,梳理的比較全面,對(duì)我們做開發(fā)的過(guò)程中有一定幫助,感興趣的朋友快來(lái)看看吧
    2022-03-03
  • C/C++仿華容道小游戲

    C/C++仿華容道小游戲

    這篇文章主要介紹了C/C++仿華容道小游戲的相關(guān)資料,模仿實(shí)現(xiàn)華容道游戲,感興趣的朋友可以參考一下
    2016-02-02

最新評(píng)論