版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在.Net程序中注入代碼的方法和裝置的制作方法專利名稱::在.Net程序中注入代碼的方法和裝置的制作方法技術(shù)領(lǐng)域::本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種在.Net程序中注入代碼的方法和裝置。背景技術(shù)::.Net是微軟的新一代技術(shù)平臺(tái),是全新的基于互聯(lián)網(wǎng)的跨語(yǔ)言軟件開(kāi)發(fā)平臺(tái),順應(yīng)了當(dāng)今軟件工業(yè)分布式計(jì)算、面向組件、企業(yè)級(jí)應(yīng)用、軟件服務(wù)化和以Web為中心等大趨勢(shì)。.Net并非開(kāi)發(fā)語(yǔ)言,但是在.Net開(kāi)發(fā)平臺(tái)上可以支持多門開(kāi)發(fā)語(yǔ)言,如C#語(yǔ)言丄++、VisualBasic、Jscript等。.Net程序的編譯分為兩個(gè)階段,首先高級(jí)語(yǔ)言的.Net程序被編譯成一種稱作IL(中間代碼)的中間語(yǔ)言,然后將IL編譯成機(jī)器語(yǔ)言。與高級(jí)語(yǔ)言相比,IL更像是機(jī)器語(yǔ)言,然而,IL卻包含一些抽象概念,如類和異常等,這也是這種語(yǔ)言被稱為中間語(yǔ)言的原因?,F(xiàn)有技術(shù)在.Net程序中注入代碼時(shí),通常先將.Net程序的EXE文件反編譯成IL代碼,然后插入IL代碼,如加解密函數(shù)的IL代碼,最后再編譯成.Net程序。該方法需要經(jīng)過(guò)反編譯和編譯的過(guò)程,復(fù)雜繁瑣,效率較低,兼容性差,而且對(duì).Net程序的限制比較多。比如,不能在匯編和IL混編的程序VC.NET編譯的程序中注入代碼。發(fā)明內(nèi)容為了克服現(xiàn)有技術(shù)的缺陷,本發(fā)明實(shí)施例提供了一種在.Net程序中注入代碼的方法和裝置。所述技術(shù)方案如下—種在.Net程序中注入代碼的方法,所述方法包括在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息;在所述.Net可執(zhí)行文件的導(dǎo)入地址表IAT中添加待注入代碼的地址,構(gòu)建成新的IAT;將所述.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為所述新的IAT的地址;修改所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。在導(dǎo)入地址表IAT中添加待注入代碼的地址,構(gòu)建成新的IAT,具體包括啟用一個(gè)新的地址,將所述.Net可執(zhí)行文件的導(dǎo)入地址表IAT的內(nèi)容復(fù)制到所述新的地址中;在復(fù)制的內(nèi)容之后添加待注入代碼的地址,構(gòu)建成新的IAT,所述新的IAT的地址為所述新的地址。修改所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求,具體包括將所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記修改為0,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息之前,還包括將.Net程序原碼編譯成.Net可執(zhí)行文件。所述信息包括所述待注入代碼的引擎動(dòng)態(tài)鏈接庫(kù)和所述待注入代碼對(duì)應(yīng)的函數(shù)?!N在.Net程序中注入代碼的裝置,所述裝置包括寫入模塊,用于在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息;構(gòu)建模塊,用于在所述.Net可執(zhí)行文件的導(dǎo)入地址表IAT中添加待注入代碼的地址,構(gòu)建成新的IAT,將所述.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為所述新的IAT的地址;修改模塊,用于修改所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。所述構(gòu)建模塊具體包括構(gòu)建單元,用于啟用一個(gè)新的地址,將所述.Net可執(zhí)行文件的導(dǎo)入地址表IAT的內(nèi)容復(fù)制到所述新的地址中,在復(fù)制的內(nèi)容之后添加待注入代碼的地址,構(gòu)建成新的IAT,所述新的IAT的地址為所述新的地址。所述修改模塊具體包括修改單元,用于將所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記修改為0,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。所述裝置還包括編譯模塊,用于在所述寫入模塊在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息之前,將.Net程序原碼編譯成.Net可執(zhí)行文件。所述信息包括所述待注入代碼的引擎動(dòng)態(tài)鏈接庫(kù)和所述待注入代碼對(duì)應(yīng)的函數(shù)。本發(fā)明實(shí)施例提供的上述技術(shù)方案,實(shí)現(xiàn)了在.Net可執(zhí)行文件中注入代碼,拋棄了對(duì)匯編和反匯編工具的依賴,容易實(shí)現(xiàn),解決了.Net可執(zhí)行文件注入代碼效率低、穩(wěn)定性和兼容性差的問(wèn)題。圖1是本發(fā)明實(shí)施例1提供的一種在.Net程序中注入代碼的方法流程圖;圖2是本發(fā)明實(shí)施例1提供的另一種在.Net程序中注入代碼的方法流程圖;圖3是本發(fā)明實(shí)施例2提供的在.Net程序中注入代碼的裝置結(jié)構(gòu)圖。具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例1參見(jiàn)圖l,本實(shí)施例提供了一種在.Net程序中注入代碼的方法,包括步驟101:在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息;步驟102:在.Net可執(zhí)行文件的導(dǎo)入地址表IAT中添加待注入代碼的信息的地址,構(gòu)建成新的IAT;步驟103:將.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為新的IAT的地址;步驟104:修改.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記,使得.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。本發(fā)明實(shí)施例中,待注入代碼是用戶根據(jù)需要預(yù)先設(shè)定的,具體內(nèi)容本發(fā)明實(shí)施例對(duì)此不做限定。通常設(shè)置為函數(shù),可以為一個(gè),也可以為多個(gè)。下面以待注入代碼為一個(gè)加解密函數(shù)為例,具體說(shuō)明上述方法。參見(jiàn)圖2,本實(shí)施例提供的上述方法,可以具體包括步驟201:對(duì).Net程序原碼進(jìn)行編譯,得到.Net程序原碼的可執(zhí)行文件。其中,.Net程序原碼的編譯分為兩個(gè)階段,首先是將高級(jí)語(yǔ)言.Net程序原碼編譯成一種IL代碼,再將IL代碼編譯成可執(zhí)行文件。通常,編譯后得到的.Net可執(zhí)行文件中包含有如下信息標(biāo)準(zhǔn)的可執(zhí)行文件信息、區(qū)塊表和元數(shù)據(jù)表等。其中,標(biāo)準(zhǔn)的可執(zhí)行文件信息是指可執(zhí)行文件中標(biāo)準(zhǔn)的PE(PortableExecutable,可移植的可執(zhí)行文件)文件頭和區(qū)塊表。該P(yáng)E文件頭可以用來(lái)識(shí)別當(dāng)前文件是否為可執(zhí)行文件,區(qū)塊表是用來(lái)存放代碼、資源、數(shù)據(jù)等,元數(shù)據(jù)表也可以位于區(qū)塊表中,用來(lái)存放各種.Net數(shù)據(jù),如類、參數(shù)和函數(shù)等等。例如,有一個(gè).Net程序原碼,內(nèi)容如下namespaceConsoleAppclassProgramstaticvoidMain(string[]args)Stringstr=〃Thisisatest!Console.WriteLine(str);將上述.Net程序原碼編譯后得到可執(zhí)行文件ConsoleApp.exe,該可執(zhí)行文件的組成如下表所示表1tableseeoriginaldocumentpage6tableseeoriginaldocumentpage7其中,DosHeader禾口NTHeader為PE文件頭;SectionHeaders為區(qū)塊表頭;區(qū)塊表頭下面的內(nèi)容為區(qū)塊表,存放有引入表、輸出表、資源表、代碼等信息;CLRHeader為元數(shù)據(jù)表頭;MetaTables為元數(shù)據(jù)表。弓l入表包括ImportPages禾口ImportInformation。輸出表包括-ExportPages禾口ExportInformation。資源表包括ResourcePages禾口ResourceInformation。無(wú)用區(qū)塊表在表1中未示出。.Net程序原碼的可執(zhí)行文件的引入表是PE文件格式中的一個(gè)概念,它描述了PE文件中引入的其它關(guān)聯(lián)DLL(DynamicLinkLibrary,動(dòng)態(tài)鏈接庫(kù))以及DLL中的函數(shù)。其中,DLL是作為共享函數(shù)庫(kù)的可執(zhí)行文件為動(dòng)態(tài)鏈接提供的一種方法,使進(jìn)程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于一個(gè)DLL中,該DLL包含一個(gè)或多個(gè)已被編譯、鏈接并與使用它們的進(jìn)程分開(kāi)存儲(chǔ)的函數(shù)。DLL還有助于共享數(shù)據(jù)和資源。多個(gè)應(yīng)用程序可同時(shí)訪問(wèn)內(nèi)存中單個(gè)DLL副本的內(nèi)容。DLL是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)的庫(kù)。通過(guò)使用DLL,程序可以實(shí)現(xiàn)模塊化,由相對(duì)獨(dú)立的組件組成。例如,一個(gè)計(jì)帳程序可以按模塊來(lái)銷售,可以在運(yùn)行時(shí)將各個(gè)模塊加載到主程序中。因?yàn)槟K是彼此獨(dú)立的,所以程序的加載速度更快,而且模塊只在相應(yīng)的功能被請(qǐng)求時(shí)才加載。步驟202:在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息,該信息包括待注入代碼的引擎動(dòng)態(tài)鏈接庫(kù)和待注入代碼對(duì)應(yīng)的函數(shù)。以上述可執(zhí)行文件ConsoleApp.exe為例,其已引入了一個(gè)外部的DLL:mscoree.dl1,且引入了該mscoree.dl1中的一個(gè)輸出函數(shù)_CorExeMain,該可執(zhí)行文件ConsoleApp.exe的引入表具體如下[ImportTablesDllNameOriginaFirstTh皿kTimeDateStampForwarderChainNamemscoree.dll0000A23000000000000000000000A24CFirstTh皿kTh皿kRVATh皿kOffsetTh皿kValueHintApiName0000A2280000A230000068300000A23E0000_CorExeMain引入表中的上述信息均為mscoree.dll的相關(guān)信息,其中包括引入的外部DLL庫(kù)的名稱mscoree.dll,以及引入的函數(shù)的名稱CorExeMain等等。其中,mscoree.dl1是NetFramework相關(guān)組件,該文件是一個(gè)瀏覽器插件(BHO),每次當(dāng)用戶打開(kāi)互聯(lián)網(wǎng)瀏覽器時(shí)它都會(huì)自動(dòng)打開(kāi)及啟動(dòng)。BHO因?yàn)闀?huì)被認(rèn)定為瀏覽器本身,所以都不會(huì)被個(gè)人防火墻所阻擋,廣告和間諜程序都會(huì)利用到這個(gè)形式。_CorExeMain函數(shù)用來(lái)指示W(wǎng)indows加載程序在可執(zhí)行映像中查找入口點(diǎn)。本實(shí)施例以待注入代碼為Startup函數(shù)為例進(jìn)行說(shuō)明,該Startup函數(shù)的引擎鏈接庫(kù)為Engine,dll,則在上述引入表中加入該待注入代碼的相關(guān)信息,得到如下的引入表ImportTablesJDllNameOriginaFirstThunkTimeDateStampForwarderChainNamemscoree.dllEngine,dllFirstTh皿k0000A2280000B6120000A2300000B5C0ThunkRVA0000A2300000B5C0上述Startup函數(shù)的形式可以如下B00L在這里實(shí)現(xiàn)本函數(shù)的功能,如加解密功能;0000A24C0000B602Th皿kOffsetTh皿kValueHintApiName00006830000098300000A23E0000B5CE00000000_CorExeMainStartupreturnTRUE;上述Startup函數(shù)的DLL庫(kù)具體如下B00LAPIENTRYDllMain(MODULEhModule,DWORDulreasonforcall,LPVOIDlpReserved)switch(ul_reason_for—call)caseDLL_PROCESS_ATTACH:{breakjcaseDLL_THREAD_ATTACH:caseDLL_THREAD_DETACH:caseDLL_PR0CESS_DETACH:breakjreturnTRUE;步驟203:用上述.Net可執(zhí)行文件的IAT(ImportAddressTable,導(dǎo)入地址表)和待注入代碼的地址,構(gòu)建新的IAT,IAT中描述了.Net可執(zhí)行文件所有引用的導(dǎo)入函數(shù)的真實(shí)地址。導(dǎo)入函數(shù)是指被.Net程序調(diào)用但其執(zhí)行代碼又不在.Net程序中的函數(shù),這些函數(shù)的代碼位于一個(gè)或者多個(gè)DLL中,當(dāng).Net可執(zhí)行文件被裝入內(nèi)存的時(shí)候,Windows裝載器才將該DLL裝入,并將調(diào)用導(dǎo)入函數(shù)的指令和該函數(shù)實(shí)際所處的地址聯(lián)系起來(lái),完成動(dòng)態(tài)鏈接。其中,將調(diào)用導(dǎo)入函數(shù)的指令和該函數(shù)實(shí)際所處的地址聯(lián)系起來(lái),就是依靠IAT來(lái)完成的。本實(shí)施例中,由于要在.Net可執(zhí)行文件中注入代碼,因此,需要在IAT中添加待注入代碼的地址。對(duì)于上述例子而言,需要在IAT中添加函數(shù)Startup的地址,以便于后續(xù)調(diào)用該函數(shù)時(shí)完成該函數(shù)的關(guān)聯(lián)。其中,原來(lái)的IAT中僅包含了.Net可執(zhí)行文件引入的輸出函數(shù)—CorExeMain的地址,具體如下Address3EA2000000000000在該IAT中添加函數(shù)Startup的地址后,得到的新的IAT具體如下[O川]Address3EA20000CEB5000000000000通常,由于原有的IAT占用的存儲(chǔ)空間是大小固定的,無(wú)法直接將Startup函數(shù)的地址添加到該IAT中,因此,采用如下方法構(gòu)建新的IAT:啟用一個(gè)新的地址,即開(kāi)辟一塊新的存儲(chǔ)空間,將.Net可執(zhí)行文件的原有的IAT的內(nèi)容復(fù)制到該新的地址中,在復(fù)制的內(nèi)容之后添加待注入代碼的地址,構(gòu)建成新的IAT,該新的IAT的地址就是上述啟用的新的地址。例如,原有IAT存儲(chǔ)于地址0X2000,長(zhǎng)度為4個(gè)字節(jié),啟用一個(gè)新的地址0X5000,長(zhǎng)度為8個(gè)字節(jié),先將原有IAT中的內(nèi)容共4個(gè)字節(jié)復(fù)制到地址0X5000中,然后在其后添加Startup函數(shù)的地址占用4個(gè)字節(jié),則得到8個(gè)字節(jié)的新的IAT,該新的IAT的地址為0X5000。原有的IAT則棄用。步驟204:將.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為上述新的IAT的地址。其中,.Net可執(zhí)行文件的入口點(diǎn)偏移地址指向的是IAT的地址,由于已構(gòu)建了新的IAT,放棄了原有的IAT,且新的IAT的地址不再是原有IAT的地址,因此,需要將.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為新的IAT的地址,從而保證.Net可執(zhí)行文件正常的運(yùn)行。本實(shí)施例中,將.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為新的IAT的地址,其代碼實(shí)現(xiàn)具體如下/氺EntryPoint氺/IMAGE_NT_HEADERS*pNtHeader=NULL;pNtHeader=RtllmageNtHeader(pvBase,dwSize);PBYTEpEntryPoint=亂L;pEntryPoint=RtllmageRvaToVa(p腿eader,pvBase,pNtHeader->OptionalHeader.AddressOfEntryPoint,0);pEntryPoint+=2;/氺FF25氺/DWORDdwEEIAT=0x400000+RtlGetlatRva();0128]memcpy(pEntryPoint,(PBYTE)&dwEEIAT,4);0129]步驟205:將.Net可執(zhí)行文件中元數(shù)據(jù)表頭CLRHeader數(shù)據(jù)結(jié)構(gòu)中的標(biāo)記FLAGS的值設(shè)置為0,使得.Net可執(zhí)行文件在執(zhí)行時(shí)滿足微軟認(rèn)證要求。0130]其中,CLRHeader是.Net可執(zhí)行文件中的元數(shù)據(jù)表頭,是一種數(shù)據(jù)結(jié)構(gòu),用來(lái)描述元數(shù)據(jù)信息,當(dāng)其中的FLAGS的值為1時(shí),表示ILONLY,即只存在IL代碼,當(dāng)該FLAGS的值為0時(shí),表示混合編碼程序集,可以保證.Net可執(zhí)行文件在執(zhí)行時(shí)滿足微軟的認(rèn)證要求。0131]上述修改FLAGS值的具體代碼實(shí)現(xiàn)如下/氺CorFlags氺/IMAGE_C0R20_HEADER*pCor=NULL;pCor=RtllmageCorHeaderForPE(pvBase,dwSize);if(!pCor){_LastError=RESULT_META_DECODER_FAILD;returnFALSE;0132]0133]0134]0135]0136]0137]0138]0139]IL0NLY)0140]0141]IL_LIBR0142]0143]0144]if((pCor->Flags&C0MIMAGE_FLAGS_IL0NLY):pCor->Flags'=C0MIMAGE_FLAGS_IL0NLY;if((pCor->Flags&COMIMAGE_FLAGS_IL_LIBRARY)C0MIMAGEFLAGSCOMIMAGEFLAGSARY)pCor->Flags=COMIMAGE_FLAGS_IL_LIBRARY;經(jīng)過(guò)上述步驟已完成向.Net程序注入代碼,且可以保證注入代碼后的.Net可執(zhí)行文件可以正常運(yùn)行。0145]實(shí)施例20146]參見(jiàn)圖3,本實(shí)施例提供了一種在.Net程序中注入代碼的裝置,包括0147]寫入模塊301,用于在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息;0148]構(gòu)建模塊302,用于在.Net可執(zhí)行文件的導(dǎo)入地址表IAT中添加待注入代碼的地吐,構(gòu)建成新的IAT,將.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為新的IAT的地址;0149]修改模塊303,用于修改.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記,使得.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。0150]本實(shí)施例中,所述信息包括待注入代碼的引擎動(dòng)態(tài)鏈接庫(kù)和待注入代碼對(duì)應(yīng)的函數(shù)。0151]其中,構(gòu)建模塊302具體包括0152]構(gòu)建單元,用于啟用一個(gè)新的地址,將.Net可執(zhí)行文件的導(dǎo)入地址表IAT的內(nèi)容復(fù)制到新的地址中,在復(fù)制的內(nèi)容之后添加待注入代碼的地址,構(gòu)建成新的IAT,新的IAT的地址為新的地址。0153]修改模塊303具體包括0154]修改單元,用于將.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記修改為O,使得.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。進(jìn)一步地,上裝置還可以包括編譯模塊304,用于在寫入模塊301在.Net可執(zhí)行文件的引入表中加入待注入代碼的信息之前,將.Net程序原碼編譯成.Net可執(zhí)行文件。本發(fā)明實(shí)施例提供的上述方法和裝置,實(shí)現(xiàn)了對(duì).Net可執(zhí)行文件注入代碼,拋棄了對(duì)匯編和反匯編工具的依賴,容易實(shí)現(xiàn),解決了.Net可執(zhí)行文件注入代碼效率低、穩(wěn)定性和兼容性差的問(wèn)題。本發(fā)明實(shí)施例提供的上述技術(shù)方案的全部或部分可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,程序可以存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,該存儲(chǔ)介質(zhì)包括ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求一種在.Net程序中注入代碼的方法,其特征在于,所述方法包括在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息;在所述.Net可執(zhí)行文件的導(dǎo)入地址表IAT中添加待注入代碼的地址,構(gòu)建成新的IAT;將所述.Net可執(zhí)行文件的入口點(diǎn)偏移地址修改為所述新的IAT的地址;修改所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在導(dǎo)入地址表IAT中添加待注入代碼的地址,構(gòu)建成新的IAT,具體包括啟用一個(gè)新的地址,將所述.Net可執(zhí)行文件的導(dǎo)入地址表IAT的內(nèi)容復(fù)制到所述新的地址中;在復(fù)制的內(nèi)容之后添加待注入代碼的地址,構(gòu)建成新的IAT,所述新的IAT的地址為所述新的地址。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,修改所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求,具體包括將所述.Net可執(zhí)行文件中元數(shù)據(jù)表頭中的標(biāo)記修改為0,使得所述.Net可執(zhí)行文件在執(zhí)行時(shí)滿足認(rèn)證要求。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在.Net可執(zhí)行文件的引入表中寫入待注入代碼的信息之前,還包括將.Net程序原碼編譯成.Net可執(zhí)行文件。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述信息包括所
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國(guó)低軌互聯(lián)網(wǎng)星座行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)碳封存解決方案行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球高速木屑制粒機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球家用吊扇燈行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)非動(dòng)力重力滾筒輸送機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)超聲波封訂機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球PTC熱敏電阻燒結(jié)爐行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球纖維蛋白密封劑行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球全向堆高AGV行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球天花板安裝防護(hù)罩行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 醫(yī)院消防安全培訓(xùn)課件
- 質(zhì)保管理制度
- 《00541語(yǔ)言學(xué)概論》自考復(fù)習(xí)題庫(kù)(含答案)
- 2025年機(jī)關(guān)工會(huì)個(gè)人工作計(jì)劃
- 江蘇省南京市、鹽城市2023-2024學(xué)年高三上學(xué)期期末調(diào)研測(cè)試+英語(yǔ)+ 含答案
- 2024護(hù)理不良事件分析
- 外科學(xué)-第三章-水、電解質(zhì)代謝紊亂和酸堿平衡失調(diào)課件
- 人事測(cè)評(píng)理論與方法-課件
- 最新卷宗的整理、裝訂(全)課件
- 城市旅行珠海景色介紹珠海旅游攻略PPT圖文課件
- 小學(xué) 三年級(jí) 科學(xué)《觀測(cè)風(fēng)》教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論