1.一種在線補(bǔ)丁激活的方法,其特征在于,包括:
定位補(bǔ)丁函數(shù)地址和待打補(bǔ)丁函數(shù)的第一條入口指令;
將包含補(bǔ)丁函數(shù)地址的信息寫入跳轉(zhuǎn)表,并獲取所述信息在所述跳轉(zhuǎn)表中的索引;
將所述跳轉(zhuǎn)表地址寫入寄存器;
獲取所述待打補(bǔ)丁函數(shù)的第一條入口指令的長(zhǎng)度,并構(gòu)造一條長(zhǎng)度小于或等于所述待打補(bǔ)丁函數(shù)的第一條入口指令長(zhǎng)度的短指令,所述短指令包含所述索引;
將所述待打補(bǔ)丁函數(shù)的第一條入口指令替換為所述短指令,使得所述待打補(bǔ)丁函數(shù)被調(diào)用時(shí),所述短指令被執(zhí)行以解析出所述索引,所述寄存器被訪問以獲取所述跳轉(zhuǎn)表地址,根據(jù)所述跳轉(zhuǎn)表地址和所述索引解析出所述補(bǔ)丁函數(shù)地址,并根據(jù)所述補(bǔ)丁函數(shù)地址跳轉(zhuǎn)到所述補(bǔ)丁函數(shù)。
2.如權(quán)利要求1所述的在線補(bǔ)丁激活的方法,其特征在于,所述將包含補(bǔ)丁函數(shù)地址的信息寫入跳轉(zhuǎn)表包括:
將所述補(bǔ)丁函數(shù)地址寫入跳轉(zhuǎn)表;
獲取所述信息在所述跳轉(zhuǎn)表中的索引包括:
獲取所述補(bǔ)丁函數(shù)地址在所述跳轉(zhuǎn)表中的索引。
3.如權(quán)利要求1所述的在線補(bǔ)丁激活的方法,其特征在于,所述將包含補(bǔ)丁函數(shù)地址的信息寫入跳轉(zhuǎn)表包括:
將跳轉(zhuǎn)到所述補(bǔ)丁函數(shù)的地址的跳轉(zhuǎn)指令寫入跳轉(zhuǎn)表;
獲取所述信息在所述跳轉(zhuǎn)表中的索引包括:
獲取所述跳轉(zhuǎn)指令在所述跳轉(zhuǎn)表中的索引。
4.如權(quán)利要求1至3任一所述的在線補(bǔ)丁激活的方法,其特征在于,所述跳轉(zhuǎn)表用于存儲(chǔ)至少一條包含補(bǔ)丁函數(shù)地址的信息。
5.一種在線補(bǔ)丁激活的裝置,其特征在于,包括:
定位單元,用于定位補(bǔ)丁函數(shù)地址和待打補(bǔ)丁函數(shù)的第一條入口指令;
寫入單元,將包含所述補(bǔ)丁函數(shù)地址的信息寫入跳轉(zhuǎn)表,將所述跳轉(zhuǎn)表地址寫入寄存器,所述補(bǔ)丁函數(shù)地址是由所述定位單元定位的;
獲取單元,用于獲取所述寫入單元寫入的信息在所述跳轉(zhuǎn)表中的索引;獲取所述定位單元定位的待打補(bǔ)丁函數(shù)的第一條入口指令的長(zhǎng)度;
構(gòu)造單元,用于構(gòu)造一條長(zhǎng)度小于或等于所述待打補(bǔ)丁函數(shù)的第一條入口指令長(zhǎng)度的短指令,所述短指令包含所述索引,所述待打補(bǔ)丁函數(shù)的第一條入口指令是由所述定位單元定位的;
替換單元,用于將所述待打補(bǔ)丁函數(shù)的第一條入口指令替換為所述構(gòu)造單元構(gòu)造的短指令;
執(zhí)行單元,用于在所述待打補(bǔ)丁函數(shù)被調(diào)用時(shí),執(zhí)行所述替換單元替換的短指令以解析出所述索引,訪問所述寄存器以獲取所述跳轉(zhuǎn)表地址,根據(jù)所述跳轉(zhuǎn)表地址和所述索引解析出所述補(bǔ)丁函數(shù)地址,并根據(jù)所述補(bǔ)丁函數(shù)地址跳轉(zhuǎn)到所述補(bǔ)丁函數(shù)。
6.根據(jù)權(quán)利要求5所述的在線補(bǔ)丁激活的裝置,其特征在于,所述寫入單元具體用于:
將定位單位定位的所述補(bǔ)丁函數(shù)的地址寫入跳轉(zhuǎn)表;
所述獲取單元具體用于:
獲取所述補(bǔ)丁函數(shù)定制在所述跳轉(zhuǎn)表中的索引。
7.根據(jù)權(quán)利要求5所述的在線補(bǔ)丁激活的裝置,其特征在于,所述寫入單元具體用于:
將可以跳轉(zhuǎn)到補(bǔ)丁函數(shù)的地址的跳轉(zhuǎn)指令寫入跳轉(zhuǎn)表;
所述獲取單元具體用于:
獲取所述跳轉(zhuǎn)指令定制在所述跳轉(zhuǎn)表中的索引。