System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)公開一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法及裝置,涉及操作系統(tǒng)管理。
技術(shù)介紹
1、信創(chuàng)操作系統(tǒng)的出現(xiàn)旨在支持和優(yōu)化特定的信創(chuàng)應(yīng)用。信創(chuàng)操作系統(tǒng)在內(nèi)核態(tài)提供了一系列調(diào)用接口,這些接口通過調(diào)用編號(hào)來區(qū)分不同的功能。glibc組件則對信創(chuàng)操作系統(tǒng)的調(diào)用接口進(jìn)行了封裝,提供了符合posix標(biāo)準(zhǔn)的接口,使得最終用戶態(tài)程序能夠方便地調(diào)用這些系統(tǒng)功能。
2、但信創(chuàng)操作系統(tǒng)的調(diào)用接口功能是明確且固定的,需要改變系統(tǒng)調(diào)用邏輯時(shí),通常必須對信創(chuàng)操作系統(tǒng)內(nèi)核和glibc組件進(jìn)行大幅度修改。然而,信創(chuàng)操作系統(tǒng)內(nèi)核和glibc組件的接口為公共接口,進(jìn)行大幅度修改不僅難度大,還可能對信創(chuàng)操作系統(tǒng)上運(yùn)行的所有應(yīng)用產(chǎn)生廣泛的影響,進(jìn)而影響這些應(yīng)用的業(yè)務(wù)邏輯。
技術(shù)實(shí)現(xiàn)思路
1、本專利技術(shù)針對現(xiàn)有技術(shù)的問題,提供一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法及裝置,在不改變信創(chuàng)操作系統(tǒng)內(nèi)核和glibc組件前提下,通過hook技術(shù)擴(kuò)展,實(shí)現(xiàn)了用戶態(tài)和內(nèi)核態(tài)的操作系統(tǒng)調(diào)用管理,實(shí)現(xiàn)了信創(chuàng)操作系統(tǒng)對調(diào)用邏輯的定制,維護(hù)了信創(chuàng)操作系統(tǒng)的整體完整性,保證了信創(chuàng)操作系統(tǒng)的穩(wěn)定性和兼容性,確保了應(yīng)用的業(yè)務(wù)邏輯。
2、本專利技術(shù)提出的具體方案是:
3、本專利技術(shù)提供一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,包括:
4、步驟1:利用gcc編譯工具編寫用戶態(tài)hook函數(shù),利用用戶態(tài)hook函數(shù)定制用戶態(tài)系統(tǒng)調(diào)用:
5、在glibc組件中通過用戶態(tài)hook函數(shù)攔截系統(tǒng)調(diào)用接口的用戶態(tài)系統(tǒng)調(diào)用;通過用
6、步驟2:利用信創(chuàng)操作系統(tǒng)內(nèi)核的調(diào)試工具kprobe定制內(nèi)核態(tài)系統(tǒng)調(diào)用:
7、新建系統(tǒng)調(diào)用:利用kprobe獲取內(nèi)核系統(tǒng)調(diào)用表指針,根據(jù)內(nèi)核系統(tǒng)調(diào)用表指針,指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù),用于新建系統(tǒng)調(diào)用接口;
8、替換系統(tǒng)調(diào)用邏輯:通過修改指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù)替換系統(tǒng)調(diào)用邏輯;
9、增加系統(tǒng)調(diào)用前置處理:指定前置處理函數(shù),用于內(nèi)核態(tài)系統(tǒng)調(diào)用的前置處理。
10、進(jìn)一步,所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法的步驟2中新建系統(tǒng)調(diào)用時(shí),具體包括:利用kprobe根據(jù)kallsyms_lookup_name函數(shù)返回的函數(shù)對應(yīng)地址獲取內(nèi)核系統(tǒng)調(diào)用表指針,kallsyms_lookup_name函數(shù)用于查找內(nèi)核符號(hào)表中函數(shù)符號(hào)并返回函數(shù)對應(yīng)地址,根據(jù)內(nèi)核系統(tǒng)調(diào)用表指針,指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù),用于新建系統(tǒng)調(diào)用接口。
11、進(jìn)一步,所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法的步驟2中替換系統(tǒng)調(diào)用邏輯時(shí),具體包括:獲取系統(tǒng)調(diào)用表內(nèi)預(yù)留索引,根據(jù)預(yù)留索引獲取索引編號(hào),每個(gè)索引編號(hào)對應(yīng)一個(gè)系統(tǒng)調(diào)用接口,
12、通過修改指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù)替換系統(tǒng)調(diào)用接口對應(yīng)的系統(tǒng)調(diào)用邏輯。
13、進(jìn)一步,所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法的步驟2中增加系統(tǒng)調(diào)用前置處理時(shí),具體包括:利用kprobe在內(nèi)核符號(hào)表中找到需要增加前置處理的系統(tǒng)調(diào)用函數(shù)名稱,將系統(tǒng)調(diào)用函數(shù)名稱對應(yīng)的系統(tǒng)調(diào)用函數(shù)指定為前置處理函數(shù)。
14、本專利技術(shù)提供一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置,包括用戶態(tài)系統(tǒng)調(diào)用管理模塊和內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊,
15、用戶態(tài)系統(tǒng)調(diào)用管理模塊利用gcc編譯工具編寫用戶態(tài)hook函數(shù),利用用戶態(tài)hook函數(shù)定制用戶態(tài)系統(tǒng)調(diào)用:
16、在glibc組件中通過用戶態(tài)hook函數(shù)攔截系統(tǒng)調(diào)用接口的用戶態(tài)系統(tǒng)調(diào)用;通過用戶態(tài)hook函數(shù)將需要調(diào)用的用戶態(tài)函數(shù)賦值為系統(tǒng)調(diào)用函數(shù);使需要調(diào)用的用戶態(tài)函數(shù),在后續(xù)出現(xiàn)用戶態(tài)系統(tǒng)調(diào)用時(shí)被調(diào)用;并在系統(tǒng)調(diào)用接口前增加前置處理邏輯,用于業(yè)務(wù)邏輯的前置處理,在系統(tǒng)調(diào)用接口后,增加后置處理邏輯,用于業(yè)務(wù)邏輯的后置處理;
17、內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊利用信創(chuàng)操作系統(tǒng)內(nèi)核的調(diào)試工具kprobe定制內(nèi)核態(tài)系統(tǒng)調(diào)用:
18、新建系統(tǒng)調(diào)用:利用kprobe獲取內(nèi)核系統(tǒng)調(diào)用表指針,根據(jù)內(nèi)核系統(tǒng)調(diào)用表指針,指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù),用于新建系統(tǒng)調(diào)用接口;
19、替換系統(tǒng)調(diào)用邏輯:通過修改指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù)替換系統(tǒng)調(diào)用邏輯;
20、增加系統(tǒng)調(diào)用前置處理:指定前置處理函數(shù),用于內(nèi)核態(tài)系統(tǒng)調(diào)用的前置處理。
21、進(jìn)一步,所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置的內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊新建系統(tǒng)調(diào)用時(shí),具體包括:利用kprobe根據(jù)kallsyms_lookup_name函數(shù)返回的函數(shù)對應(yīng)地址獲取內(nèi)核系統(tǒng)調(diào)用表指針,kallsyms_lookup_name函數(shù)用于查找內(nèi)核符號(hào)表中函數(shù)符號(hào)并返回函數(shù)對應(yīng)地址,根據(jù)內(nèi)核系統(tǒng)調(diào)用表指針,指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù),用于新建系統(tǒng)調(diào)用接口。
22、進(jìn)一步,所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置的內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊替換系統(tǒng)調(diào)用邏輯時(shí),具體包括:獲取系統(tǒng)調(diào)用表內(nèi)預(yù)留索引,根據(jù)預(yù)留索引獲取索引編號(hào),每個(gè)索引編號(hào)對應(yīng)一個(gè)系統(tǒng)調(diào)用接口,
23、通過修改指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù)替換系統(tǒng)調(diào)用接口對應(yīng)的系統(tǒng)調(diào)用邏輯。
24、進(jìn)一步,所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置的內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊增加系統(tǒng)調(diào)用前置處理時(shí),具體包括:利用kprobe在內(nèi)核符號(hào)表中找到需要增加前置處理的系統(tǒng)調(diào)用函數(shù)名稱,將系統(tǒng)調(diào)用函數(shù)名稱對應(yīng)的系統(tǒng)調(diào)用函數(shù)指定為前置處理函數(shù)。
25、本專利技術(shù)的有益之處是:
26、實(shí)現(xiàn)了用戶態(tài)和內(nèi)核態(tài)的系統(tǒng)調(diào)用管理,支持用戶態(tài)系統(tǒng)調(diào)用前置處理,支持用戶態(tài)系統(tǒng)調(diào)用后置處理,支持新建內(nèi)核態(tài)系統(tǒng)調(diào)用接口,支持替換內(nèi)核態(tài)系統(tǒng)調(diào)用邏輯,支持內(nèi)核態(tài)系統(tǒng)調(diào)用前置處理,在不改變信創(chuàng)操作系統(tǒng)內(nèi)核前提下,實(shí)現(xiàn)了信創(chuàng)操作系統(tǒng)對系統(tǒng)調(diào)用邏輯的定制,維護(hù)了信創(chuàng)操作系統(tǒng)的整體完整性,保證了信創(chuàng)操作系統(tǒng)的穩(wěn)定性和兼容性,確保了應(yīng)用的業(yè)務(wù)邏輯。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是包括:
2.根據(jù)權(quán)利要求1所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是步驟2中新建系統(tǒng)調(diào)用時(shí),具體包括:利用kprobe根據(jù)kallsyms_lookup_name函數(shù)返回的函數(shù)對應(yīng)地址獲取內(nèi)核系統(tǒng)調(diào)用表指針,kallsyms_lookup_name函數(shù)用于查找內(nèi)核符號(hào)表中函數(shù)符號(hào)并返回函數(shù)對應(yīng)地址,根據(jù)內(nèi)核系統(tǒng)調(diào)用表指針,指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù),用于新建系統(tǒng)調(diào)用接口。
3.根據(jù)權(quán)利要求1所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是步驟2中替換系統(tǒng)調(diào)用邏輯時(shí),具體包括:獲取系統(tǒng)調(diào)用表內(nèi)預(yù)留索引,根據(jù)預(yù)留索引獲取索引編號(hào),每個(gè)索引編號(hào)對應(yīng)一個(gè)系統(tǒng)調(diào)用接口,
4.根據(jù)權(quán)利要求1所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是步驟2中增加系統(tǒng)調(diào)用前置處理時(shí),具體包括:利用kprobe在內(nèi)核符號(hào)表中找到需要增加前置處理的系統(tǒng)調(diào)用函數(shù)名稱,將系統(tǒng)調(diào)用函數(shù)名稱對應(yīng)的系統(tǒng)調(diào)用函數(shù)指定為前置處理函數(shù)。
5.一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置,其特征是包括用戶態(tài)系統(tǒng)調(diào)用管理模塊和內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊
6.根據(jù)權(quán)利要求5所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置,其特征是內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊新建系統(tǒng)調(diào)用時(shí),具體包括:利用kprobe根據(jù)kallsyms_lookup_name函數(shù)返回的函數(shù)對應(yīng)地址獲取內(nèi)核系統(tǒng)調(diào)用表指針,kallsyms_lookup_name函數(shù)用于查找內(nèi)核符號(hào)表中函數(shù)符號(hào)并返回函數(shù)對應(yīng)地址,根據(jù)內(nèi)核系統(tǒng)調(diào)用表指針,指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù),用于新建系統(tǒng)調(diào)用接口。
7.根據(jù)權(quán)利要求5所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置,其特征是內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊替換系統(tǒng)調(diào)用邏輯時(shí),具體包括:獲取系統(tǒng)調(diào)用表內(nèi)預(yù)留索引,根據(jù)預(yù)留索引獲取索引編號(hào),每個(gè)索引編號(hào)對應(yīng)一個(gè)系統(tǒng)調(diào)用接口,
8.根據(jù)權(quán)利要求5所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置,其特征是內(nèi)核態(tài)系統(tǒng)調(diào)用管理模塊增加系統(tǒng)調(diào)用前置處理時(shí),具體包括:利用kprobe在內(nèi)核符號(hào)表中找到需要增加前置處理的系統(tǒng)調(diào)用函數(shù)名稱,將系統(tǒng)調(diào)用函數(shù)名稱對應(yīng)的系統(tǒng)調(diào)用函數(shù)指定為前置處理函數(shù)。
...【技術(shù)特征摘要】
1.一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是包括:
2.根據(jù)權(quán)利要求1所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是步驟2中新建系統(tǒng)調(diào)用時(shí),具體包括:利用kprobe根據(jù)kallsyms_lookup_name函數(shù)返回的函數(shù)對應(yīng)地址獲取內(nèi)核系統(tǒng)調(diào)用表指針,kallsyms_lookup_name函數(shù)用于查找內(nèi)核符號(hào)表中函數(shù)符號(hào)并返回函數(shù)對應(yīng)地址,根據(jù)內(nèi)核系統(tǒng)調(diào)用表指針,指定系統(tǒng)調(diào)用表內(nèi)預(yù)留索引的函數(shù),用于新建系統(tǒng)調(diào)用接口。
3.根據(jù)權(quán)利要求1所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是步驟2中替換系統(tǒng)調(diào)用邏輯時(shí),具體包括:獲取系統(tǒng)調(diào)用表內(nèi)預(yù)留索引,根據(jù)預(yù)留索引獲取索引編號(hào),每個(gè)索引編號(hào)對應(yīng)一個(gè)系統(tǒng)調(diào)用接口,
4.根據(jù)權(quán)利要求1所述的一種信創(chuàng)操作系統(tǒng)的定制調(diào)用方法,其特征是步驟2中增加系統(tǒng)調(diào)用前置處理時(shí),具體包括:利用kprobe在內(nèi)核符號(hào)表中找到需要增加前置處理的系統(tǒng)調(diào)用函數(shù)名稱,將系統(tǒng)調(diào)用函數(shù)名稱對應(yīng)的系統(tǒng)調(diào)用函數(shù)指定為前置處理函數(shù)。
5.一種信創(chuàng)操作系統(tǒng)的定制調(diào)用裝置,其...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:石光銀,董玉全,蔡衛(wèi)衛(wèi),高傳集,
申請(專利權(quán))人:浪潮云信息技術(shù)股份公司,
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對其他瀏覽者有用的留言會(huì)獲得科技券。