CN101719077B - 在.Net程序中注入代码的方法和装置 - Google Patents
在.Net程序中注入代码的方法和装置 Download PDFInfo
- Publication number
- CN101719077B CN101719077B CN200910243880.4A CN200910243880A CN101719077B CN 101719077 B CN101719077 B CN 101719077B CN 200910243880 A CN200910243880 A CN 200910243880A CN 101719077 B CN101719077 B CN 101719077B
- Authority
- CN
- China
- Prior art keywords
- executable file
- address
- net
- iat
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000010276 construction Methods 0.000 claims abstract description 4
- 230000010076 replication Effects 0.000 claims description 6
- 230000008676 import Effects 0.000 abstract description 12
- 230000004048 modification Effects 0.000 abstract description 3
- 238000012986 modification Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 39
- 238000011161 development Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种在.Net程序中注入代码的方法和装置,属于信息安全领域。所述方法包括:在.Net可执行文件的引入表中写入待注入代码的信息;在.Net可执行文件的IAT中添加待注入代码的地址,构建成新的IAT;将.Net可执行文件的入口点偏移地址修改为新的IAT的地址;修改.Net可执行文件中元数据表头中的标记,使得.Net可执行文件在执行时满足认证要求。所述装置包括:写入模块、构建模块和修改模块。本发明实现了在.Net可执行文件中注入代码,抛弃了对汇编和反汇编工具的依赖,容易实现,解决了.Net可执行文件注入代码效率低、稳定性和兼容性差的问题。
Description
技术领域
本发明涉及信息安全领域,特别涉及一种在.Net程序中注入代码的方法和装置。
背景技术
.Net是微软的新一代技术平台,是全新的基于互联网的跨语言软件开发平台,顺应了当今软件工业分布式计算、面向组件、企业级应用、软件服务化和以Web为中心等大趋势。.Net并非开发语言,但是在.Net开发平台上可以支持多门开发语言,如C#语言、C++、Visual Basic、Jscript等。
.Net程序的编译分为两个阶段,首先高级语言的.Net程序被编译成一种称作IL(中间代码)的中间语言,然后将IL编译成机器语言。与高级语言相比,IL更像是机器语言,然而,IL却包含一些抽象概念,如类和异常等,这也是这种语言被称为中间语言的原因。
现有技术在.Net程序中注入代码时,通常先将.Net程序的EXE文件反编译成IL代码,然后插入IL代码,如加解密函数的IL代码,最后再编译成.Net程序。该方法需要经过反编译和编译的过程,复杂繁琐,效率较低,兼容性差,而且对.Net程序的限制比较多。比如,不能在汇编和IL混编的程序VC.NET编译的程序中注入代码。
发明内容
为了克服现有技术的缺陷,本发明实施例提供了一种在.Net程序中注入代码的方法和装置。所述技术方案如下:
一种在.Net程序中注入代码的方法,所述方法包括:
在.Net可执行文件的引入表中写入待注入代码的信息;
在所述.Net可执行文件的导入地址表IAT中添加待注入代码的地址,构建成新的IAT;
将所述.Net可执行文件的入口点偏移地址修改为所述新的IAT的地址;
修改所述.Net可执行文件中元数据表头中的标记,使得所述.Net可执行文件在执行时满足认证要求。
在导入地址表IAT中添加待注入代码的地址,构建成新的IAT,具体包括:
启用一个新的地址,将所述.Net可执行文件的导入地址表IAT的内容复制到所述新的地址中;
在复制的内容之后添加待注入代码的地址,构建成新的IAT,所述新的IAT的地址为所述新的地址。
修改所述.Net可执行文件中元数据表头中的标记,使得所述.Net可执行文件在执行时满足认证要求,具体包括:
将所述.Net可执行文件中元数据表头中的标记修改为0,使得所述.Net可执行文件在执行时满足认证要求。
在.Net可执行文件的引入表中写入待注入代码的信息之前,还包括:
将.Net程序原码编译成.Net可执行文件。
所述信息包括所述待注入代码的引擎动态链接库和所述待注入代码对应的函数。
一种在.Net程序中注入代码的装置,所述装置包括:
写入模块,用于在.Net可执行文件的引入表中写入待注入代码的信息;
构建模块,用于在所述.Net可执行文件的导入地址表IAT中添加待注入代码的地址,构建成新的IAT,将所述.Net可执行文件的入口点偏移地址修改为所述新的IAT的地址;
修改模块,用于修改所述.Net可执行文件中元数据表头中的标记,使得所述.Net可执行文件在执行时满足认证要求。
所述构建模块具体包括:
构建单元,用于启用一个新的地址,将所述.Net可执行文件的导入地址表IAT的内容复制到所述新的地址中,在复制的内容之后添加待注入代码的地址,构建成新的IAT,所述新的IAT的地址为所述新的地址。
所述修改模块具体包括:
修改单元,用于将所述.Net可执行文件中元数据表头中的标记修改为0,使得所述.Net可执行文件在执行时满足认证要求。
所述装置还包括:
编译模块,用于在所述写入模块在.Net可执行文件的引入表中写入待注入代码的信息之前,将.Net程序原码编译成.Net可执行文件。
所述信息包括所述待注入代码的引擎动态链接库和所述待注入代码对应的函数。
本发明实施例提供的上述技术方案,实现了在.Net可执行文件中注入代码,抛弃了对汇编和反汇编工具的依赖,容易实现,解决了.Net可执行文件注入代码效率低、稳定性和兼容性差的问题。
附图说明
图1是本发明实施例1提供的一种在.Net程序中注入代码的方法流程图;
图2是本发明实施例1提供的另一种在.Net程序中注入代码的方法流程图;
图3是本发明实施例2提供的在.Net程序中注入代码的装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本实施例提供了一种在.Net程序中注入代码的方法,包括:
步骤101:在.Net可执行文件的引入表中写入待注入代码的信息;
步骤102:在.Net可执行文件的导入地址表IAT中添加待注入代码的信息的地址,构建成新的IAT;
步骤103:将.Net可执行文件的入口点偏移地址修改为新的IAT的地址;
步骤104:修改.Net可执行文件中元数据表头中的标记,使得.Net可执行文件在执行时满足认证要求。
本发明实施例中,待注入代码是用户根据需要预先设定的,具体内容本发明实施例对此不做限定。通常设置为函数,可以为一个,也可以为多个。下面以待注入代码为一个加解密函数为例,具体说明上述方法。参见图2,本实施例提供的上述方法,可以具体包括:
步骤201:对.Net程序原码进行编译,得到.Net程序原码的可执行文件。
其中,.Net程序原码的编译分为两个阶段,首先是将高级语言.Net程序原码编译成一种IL代码,再将IL代码编译成可执行文件。
通常,编译后得到的.Net可执行文件中包含有如下信息:标准的可执行文件信息、区块表和元数据表等。其中,标准的可执行文件信息是指可执行文件中标准的PE(PortableExecutable,可移植的可执行文件)文件头和区块表。该PE文件头可以用来识别当前文件是否为可执行文件,区块表是用来存放代码、资源、数据等,元数据表也可以位于区块表中,用来存放各种.Net数据,如:类、参数和函数等等。
例如,有一个.Net程序原码,内容如下:
namespace ConsoleApp
{
class Program
{
static void Main(string[]args)
{
String str=″This is a test!″;
Console.WriteLine(str);
}
}
}
将上述.Net程序原码编译后得到可执行文件ConsoleApp.exe,该可执行文件的组成如下表所示:
表1
Dos Header |
NT Header |
Section Headers |
Import PagesImport InformationExport PagesExport InformationResource PagesResource Information.... |
CLR Header |
Meta Tables ... |
其中,Dos Header和NT Header为PE文件头;Section Headers为区块表头;区块表头下面的内容为区块表,存放有引入表、输出表、资源表、代码等信息;CLR Header为元数据表头;Meta Tables为元数据表。引入表包括:Import Pages和Import Information。输出表包括:Export Pages和Export Information。资源表包括:Resource Pages和Resource Information。无用区块表在表1中未示出。
.Net程序原码的可执行文件的引入表是PE文件格式中的一个概念,它描述了PE文件中引入的其它关联DLL(Dynamic Link Library,动态链接库)以及DLL中的函数。
其中,DLL是作为共享函数库的可执行文件为动态链接提供的一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。DLL是一个包含可由多个程序同时使用的代码和数据的库。通过使用DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售,可以在运行时将各个模块加载到主程序中。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
步骤202:在.Net可执行文件的引入表中写入待注入代码的信息,该信息包括待注入代码的引擎动态链接库和待注入代码对应的函数。
以上述可执行文件ConsoleApp.exe为例,其已引入了一个外部的DLL:mscoree.dll,且引入了该mscoree.dll中的一个输出函数_CorExeMain,该可执行文件ConsoleApp.exe的引入表具体如下:
【Import Tables】
DllName OriginaFirstThunk TimeDateStamp ForwarderChain Name
mscoree.dll 0000A23 000000000 00000000 0000A24C
FirstThunk ThunkRVA ThunkOffset ThunkValue Hint ApiName
0000A228 0000A230 00006830 0000A23E 0000 _CorExeMain
引入表中的上述信息均为mscoree.dll的相关信息,其中包括:引入的外部DLL库的名称mscoree.dll,以及引入的函数的名称CorExeMain等等。
其中,mscoree.dll是.Net Framework相关组件,该文件是一个浏览器插件(BHO),每次当用户打开互联网浏览器时它都会自动打开及启动。BHO因为会被认定为浏览器本身,所以都不会被个人防火墙所阻挡,广告和间谍程序都会利用到这个形式。_CorExeMain函数用来指示Windows加载程序在可执行映像中查找入口点。
本实施例以待注入代码为Startup函数为例进行说明,该Startup函数的引擎链接库为Engine.dll,则在上述引入表中加入该待注入代码的相关信息,得到如下的引入表:
【Import Tables】
DllName OriginaFirstThunk TimeDateStamp ForwarderChain Name
mscoree.dll 0000A230 00000000 00000000 0000A24C
Engine.dll 0000B5C0 00000000 00000000 0000B602
FirstThunk ThunkRVA ThunkOffset ThunkValue Hint ApiName
0000A228 0000A230 00006830 0000A23E 0000 _CorExeMain
0000B612 0000B5C0 00009830 0000B5CE 0000 Startup
上述Startup函数的形式可以如下:
BOOL_declspec(dllexport)Startup()
{
//在这里实现本函数的功能,如加解密功能;
return TRUE;
}
上述Startup函数的DLL库具体如下:
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul reason for call,
LPVOID lpReserved
)
{
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:{
break;
}
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
步骤203:用上述.Net可执行文件的IAT(Import Address Table,导入地址表)和待注入代码的地址,构建新的IAT。
IAT中描述了.Net可执行文件所有引用的导入函数的真实地址。导入函数是指被.Net程序调用但其执行代码又不在.Net程序中的函数,这些函数的代码位于一个或者多个DLL中,当.Net可执行文件被装入内存的时候,Windows装载器才将该DLL装入,并将调用导入函数的指令和该函数实际所处的地址联系起来,完成动态链接。其中,将调用导入函数的指令和该函数实际所处的地址联系起来,就是依靠IAT来完成的。
本实施例中,由于要在.Net可执行文件中注入代码,因此,需要在IAT中添加待注入代码的地址。对于上述例子而言,需要在IAT中添加函数Startup的地址,以便于后续调用该函数时完成该函数的关联。其中,原来的IAT中仅包含了.Net可执行文件引入的输出函数_CorExeMain的地址,具体如下:
Address
3E A2 00 00 00 00 00 00
在该IAT中添加函数Startup的地址后,得到的新的IAT具体如下:
Address
3E A2 00 00 CE B5 00 00 00 00 00 00
通常,由于原有的IAT占用的存储空间是大小固定的,无法直接将Startup函数的地址添加到该IAT中,因此,采用如下方法构建新的IAT:
启用一个新的地址,即开辟一块新的存储空间,将.Net可执行文件的原有的IAT的内容复制到该新的地址中,在复制的内容之后添加待注入代码的地址,构建成新的IAT,该新的IAT的地址就是上述启用的新的地址。例如,原有IAT存储于地址0X2000,长度为4个字节,启用一个新的地址0X5000,长度为8个字节,先将原有IAT中的内容共4个字节复制到地址0X5000中,然后在其后添加Startup函数的地址占用4个字节,则得到8个字节的新的IAT,该新的IAT的地址为0X5000。原有的IAT则弃用。
步骤204:将.Net可执行文件的入口点偏移地址修改为上述新的IAT的地址。
其中,.Net可执行文件的入口点偏移地址指向的是IAT的地址,由于已构建了新的IAT,放弃了原有的IAT,且新的IAT的地址不再是原有IAT的地址,因此,需要将.Net可执行文件的入口点偏移地址修改为新的IAT的地址,从而保证.Net可执行文件正常的运行。
本实施例中,将.Net可执行文件的入口点偏移地址修改为新的IAT的地址,其代码实现具体如下:
/*EntryPoint*/
IMAGE_NT_HEADERS*pNtHeader=NULL;
pNtHeader=RtlImageNtHeader(pvBase,dwSize);
PBYTE pEntryPoint=NULL;
pEntryPoint=RtlImageRvaToVa(pNtHeader,
pvBase,
pNtHeader->OptionalHeader.AddressOfEntryPoint,
0);
pEntryPoint+=2;/*FF 25*/
DWORD dwEEIAT=0x400000+RtlGetIatRva();
memcpy(pEntryPoint,(PBYTE)&dwEEIAT,4);
步骤205:将.Net可执行文件中元数据表头CLR Header数据结构中的标记FLAGS的值设置为0,使得.Net可执行文件在执行时满足微软认证要求。
其中,CLR Header是.Net可执行文件中的元数据表头,是一种数据结构,用来描述元数据信息,当其中的FLAGS的值为1时,表示IL ONLY,即只存在IL代码,当该FLAGS的值为0时,表示混合编码程序集,可以保证.Net可执行文件在执行时满足微软的认证要求。
上述修改FLAGS值的具体代码实现如下:
/*Cor Flags*/
IMAGE_COR20_HEADER*pCor=NULL;
pCor=RtlImageCorHeaderForPE(pvBase,dwSize);
if(!pCor){
_LastError=RESULT_META_DECODER_FAILD;
return FALSE;
}
if((pCor->Flags & COMIMAGE_FLAGS_ILONLY)==COMIMAGE_FLAGS_ILONLY)
pCor->Flags^=COMIMAGE_FLAGS_ILONLY;
if((pCor->Flags&COMIMAGE_FLAGS_IL_LIBRARY)==COMIMAGE_FLAGS_IL_LIBR
ARY)
pCor->Flags^=COMIMAGE_FLAGS_IL_LIBRARY;
经过上述步骤已完成向.Net程序注入代码,且可以保证注入代码后的.Net可执行文件可以正常运行。
实施例2
参见图3,本实施例提供了一种在.Net程序中注入代码的装置,包括:
写入模块301,用于在.Net可执行文件的引入表中写入待注入代码的信息;
构建模块302,用于在.Net可执行文件的导入地址表IAT中添加待注入代码的地址,构建成新的IAT,将.Net可执行文件的入口点偏移地址修改为新的IAT的地址;
修改模块303,用于修改.Net可执行文件中元数据表头中的标记,使得.Net可执行文件在执行时满足认证要求。
本实施例中,所述信息包括待注入代码的引擎动态链接库和待注入代码对应的函数。
其中,构建模块302具体包括:
构建单元,用于启用一个新的地址,将.Net可执行文件的导入地址表IAT的内容复制到新的地址中,在复制的内容之后添加待注入代码的地址,构建成新的IAT,新的IAT的地址为新的地址。
修改模块303具体包括:
修改单元,用于将.Net可执行文件中元数据表头中的标记修改为0,使得.Net可执行文件在执行时满足认证要求。
进一步地,上装置还可以包括:
编译模块304,用于在写入模块301在.Net可执行文件的引入表中加入待注入代码的信息之前,将.Net程序原码编译成.Net可执行文件。
本发明实施例提供的上述方法和装置,实现了对.Net可执行文件注入代码,抛弃了对汇编和反汇编工具的依赖,容易实现,解决了.Net可执行文件注入代码效率低、稳定性和兼容性差的问题。
本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,程序可以存储在可读取的存储介质中,该存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种在.Net程序中注入代码的方法,其特征在于,所述方法包括:
在.Net可执行文件的引入表中写入待注入代码的信息;
在所述.Net可执行文件的导入地址表IAT中添加待注入代码的地址,构建成新的IAT;
将所述.Net可执行文件的入口点偏移地址修改为所述新的IAT的地址;
修改所述.Net可执行文件中元数据表头中的标记,使得所述.Net可执行文件在执行时满足认证要求。
2.根据权利要求1所述的方法,其特征在于,在导入地址表IAT中添加待注入代码的地址,构建成新的IAT,具体包括:
启用一个新的地址,将所述.Net可执行文件的导入地址表IAT的内容复制到所述新的地址中;
在复制的内容之后添加待注入代码的地址,构建成新的IAT,所述新的IAT的地址为所述新的地址。
3.根据权利要求1所述的方法,其特征在于,修改所述.Net可执行文件中元数据表头中的标记,使得所述.Net可执行文件在执行时满足认证要求,具体包括:
将所述.Net可执行文件中元数据表头中的标记修改为0,使得所述.Net可执行文件在执行时满足认证要求。
4.根据权利要求1所述的方法,其特征在于,在.Net可执行文件的引入表中写入待注入代码的信息之前,还包括:
将.Net程序原码编译成.Net可执行文件。
5.根据权利要求1所述的方法,其特征在于,所述信息包括所述待注入代码的引擎动态链接库和所述待注入代码对应的函数。
6.一种在.Net程序中注入代码的装置,其特征在于,所述装置包括:
写入模块,用于在.Net可执行文件的引入表中写入待注入代码的信息;
构建模块,用于在所述.Net可执行文件的导入地址表IAT中添加待注入代码的地址,构建成新的IAT,将所述.Net可执行文件的入口点偏移地址修改为所述新的IAT的地址;
修改模块,用于修改所述.Net可执行文件中元数据表头中的标记,使得所述.Net可执行文件在执行时满足认证要求。
7.根据权利要求6所述的装置,其特征在于,所述构建模块具体包括:
构建单元,用于启用一个新的地址,将所述.Net可执行文件的导入地址表IAT的内容复制到所述新的地址中,在复制的内容之后添加待注入代码的地址,构建成新的IAT,所述新的IAT的地址为所述新的地址。
8.根据权利要求6所述的装置,其特征在于,所述修改模块具体包括:
修改单元,用于将所述.Net可执行文件中元数据表头中的标记修改为0,使得所述.Net可执行文件在执行时满足认证要求。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
编译模块,用于在所述写入模块在.Net可执行文件的引入表中写入待注入代码的信息之前,将.Net程序原码编译成.Net可执行文件。
10.根据权利要求6所述的装置,其特征在于,所述信息包括所述待注入代码的引擎动态链接库和所述待注入代码对应的函数。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910243880.4A CN101719077B (zh) | 2009-12-24 | 2009-12-24 | 在.Net程序中注入代码的方法和装置 |
US12/989,681 US8739119B2 (en) | 2009-12-24 | 2010-07-28 | Method for inserting code into .net programs and apparatus therefor |
PCT/CN2010/075516 WO2011076010A1 (zh) | 2009-12-24 | 2010-07-28 | 在.net程序中注入代码的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910243880.4A CN101719077B (zh) | 2009-12-24 | 2009-12-24 | 在.Net程序中注入代码的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101719077A CN101719077A (zh) | 2010-06-02 |
CN101719077B true CN101719077B (zh) | 2012-06-27 |
Family
ID=42433655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910243880.4A Active CN101719077B (zh) | 2009-12-24 | 2009-12-24 | 在.Net程序中注入代码的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8739119B2 (zh) |
CN (1) | CN101719077B (zh) |
WO (1) | WO2011076010A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908119B (zh) * | 2010-08-12 | 2012-10-03 | 浙江中控软件技术有限公司 | 一种动态链接库dll文件的处理方法和装置 |
US8869112B2 (en) | 2010-11-30 | 2014-10-21 | Sap Se | System and method for modular business applications |
US9336027B2 (en) | 2010-12-17 | 2016-05-10 | Sap Se | System and method for modular business applications |
US8554797B2 (en) | 2010-12-17 | 2013-10-08 | Sap Ag | System and method for modular business applications |
US9632771B2 (en) * | 2012-12-13 | 2017-04-25 | Microsoft Technology Licensing, Llc | Association of metadata with source code and applications and services premised thereon |
US9817638B2 (en) * | 2013-12-27 | 2017-11-14 | Symantec Corporation | Systems and methods for injecting code into an application |
CN104866293B (zh) * | 2014-02-25 | 2018-04-03 | 北京娜迦信息科技发展有限公司 | 一种对Android应用程序扩展功能的方法及装置 |
CN105528220B (zh) * | 2014-09-28 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 加载动态共享对象的方法和装置 |
CN105787359B (zh) * | 2016-02-19 | 2019-01-08 | 百度在线网络技术(北京)有限公司 | 进程守护方法和装置 |
CN107193538A (zh) * | 2016-03-14 | 2017-09-22 | 无锡天脉聚源传媒科技有限公司 | 一种改进的钩取技术的方法及装置 |
CN106295402B (zh) * | 2016-08-16 | 2020-03-31 | 武汉斗鱼网络科技有限公司 | 一种dll文件的隐藏方法及系统 |
CN106354644B (zh) * | 2016-08-30 | 2018-12-14 | 北京深思数盾科技股份有限公司 | 应用程序性能测试方法、装置和系统 |
CN108073499B (zh) * | 2016-11-10 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法及装置 |
CN107632934B (zh) * | 2017-09-18 | 2021-02-02 | 武汉斗鱼网络科技有限公司 | 一种C-sharp中函数复制方法及装置 |
CN108845841B (zh) * | 2018-06-15 | 2021-10-01 | 广州多益网络股份有限公司 | 改变终端应用行为的方法、装置及终端 |
CN111177026B (zh) * | 2019-09-11 | 2024-09-27 | 腾讯科技(深圳)有限公司 | 一种修改变量内存布局的方法、装置及计算机设备 |
CN112115466B (zh) * | 2020-08-26 | 2021-05-14 | 广州锦行网络科技有限公司 | 一种绕过select关键字的sql注入方法 |
CN112364580A (zh) * | 2020-11-13 | 2021-02-12 | 上海兆芯集成电路有限公司 | 自动在寄存器传输级设计文件中插入特定代码的方法及装置 |
CN114610405B (zh) * | 2022-03-03 | 2024-03-29 | 深圳盛显科技有限公司 | 一种多应用截屏及网络编码输出方法、设备、介质、产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998033106A1 (en) * | 1997-01-29 | 1998-07-30 | Shopnow.Com, Inc. | Method and system for injecting new code into existing application code |
CN101382892A (zh) * | 2008-09-24 | 2009-03-11 | 北京飞天诚信科技有限公司 | 下载.Net程序的方法和装置 |
CN101504656A (zh) * | 2009-03-26 | 2009-08-12 | 成都磐石软件有限责任公司 | 一种pe文件代码合并执行方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6334213B1 (en) * | 1998-01-20 | 2001-12-25 | Preview Systems | Merging of separate executable computer programs to form a single executable computer program |
US7739516B2 (en) * | 2004-03-05 | 2010-06-15 | Microsoft Corporation | Import address table verification |
CN100570188C (zh) * | 2004-07-07 | 2009-12-16 | 黄中一 | 结构改良的沐浴用的莲蓬头 |
US8151277B2 (en) * | 2007-05-15 | 2012-04-03 | Dynatrace Software Gmbh | Method and system for dynamic remote injection of in-process agents into virtual machine based applications |
CN100474253C (zh) * | 2007-11-22 | 2009-04-01 | 北京飞天诚信科技有限公司 | .Net程序保护方法及装置 |
CN101256612B (zh) * | 2008-04-01 | 2010-11-03 | 北京飞天诚信科技有限公司 | 基于.Net卡的程序保护方法和系统 |
-
2009
- 2009-12-24 CN CN200910243880.4A patent/CN101719077B/zh active Active
-
2010
- 2010-07-28 US US12/989,681 patent/US8739119B2/en active Active
- 2010-07-28 WO PCT/CN2010/075516 patent/WO2011076010A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998033106A1 (en) * | 1997-01-29 | 1998-07-30 | Shopnow.Com, Inc. | Method and system for injecting new code into existing application code |
CN101382892A (zh) * | 2008-09-24 | 2009-03-11 | 北京飞天诚信科技有限公司 | 下载.Net程序的方法和装置 |
CN101504656A (zh) * | 2009-03-26 | 2009-08-12 | 成都磐石软件有限责任公司 | 一种pe文件代码合并执行方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2011076010A1 (zh) | 2011-06-30 |
CN101719077A (zh) | 2010-06-02 |
US8739119B2 (en) | 2014-05-27 |
US20120272212A1 (en) | 2012-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101719077B (zh) | 在.Net程序中注入代码的方法和装置 | |
US6802006B1 (en) | System and method of verifying the authenticity of dynamically connectable executable images | |
Schwartz et al. | Incremental compilation in Magpie | |
US8615735B2 (en) | System and method for blurring instructions and data via binary obfuscation | |
WO2006056985A2 (en) | System and method for managing content of rich media | |
US20090007081A1 (en) | System and Method of Generating Applications for Mobile Devices | |
CN108845839A (zh) | 应用页面加载方法、装置及计算机可读存储介质 | |
US20050027988A1 (en) | System and method of verifying the authenticity of dynamically connectable executable images | |
CN111078279B (zh) | 字节码文件的处理方法、装置、设备及存储介质 | |
Tanenbaum | Lessons learned from 30 years of MINIX | |
CN108647061A (zh) | 系统隐藏方法的调用方法、装置和计算设备 | |
CN102147734B (zh) | 运行时类提取的方法和系统 | |
KR20110013192A (ko) | 실행형 컨텐츠의 분리 실행이 가능한 저장 장치 및 그의 네이티브 실행 환경 구현 장치 | |
EP1303802B1 (en) | System and method of verifying the authenticity of dynamically connectable executable images | |
CN110597496A (zh) | 应用程序的字节码文件获取方法及装置 | |
US9841982B2 (en) | Locating import class files at alternate locations than specified in classpath information | |
CN103377131A (zh) | 数据处理装置和方法 | |
US8423974B2 (en) | System and method for call replacement | |
CN106778270B (zh) | 一种恶意应用程序的检测方法及系统 | |
CN101593258A (zh) | 一种在软件保护装置中简化实现.Net虚拟机的系统和方法 | |
CN102629259A (zh) | 嵌入式系统中只读文件系统建立方法,装置及嵌入式系统 | |
CN106897588B (zh) | 一种标签函数的处理方法及装置 | |
JP2007179260A (ja) | 資産管理装置及び資産管理方法 | |
Cozens | Advanced Perl Programming: The Worlds Most Highly Developed Perl Tutorial | |
WO1999056204A1 (fr) | Procede et dispositif pour le traitement de donnees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085 Patentee after: Feitian Technologies Co.,Ltd. Country or region after: China Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing Patentee before: Feitian Technologies Co.,Ltd. Country or region before: China |