Java动态代理应用基础
0、代理的本质
如果把对象间方法的调用理解为client到server之间的通信,那么Proxy的本质是实现一个具有特定功能的中间人。在Java中存在多种方式实现对对象方法调用的代理。
有了中间人之后,就可以对调用进行hook,达到如下目的:
1)控制调用流程,如权限控制、隐藏、监控调用记录等;
2)篡改调用方提供的Request(即Input),如对分布式操作进行Map;
0、代理的本质
如果把对象间方法的调用理解为client到server之间的通信,那么Proxy的本质是实现一个具有特定功能的中间人。在Java中存在多种方式实现对对象方法调用的代理。
有了中间人之后,就可以对调用进行hook,达到如下目的:
1)控制调用流程,如权限控制、隐藏、监控调用记录等;
2)篡改调用方提供的Request(即Input),如对分布式操作进行Map;
1)Thread & ThreadPoolExecutor
Thread例子如下:
for(int i=0; i<100; i++){
Thread t = new Thread(){
@Override
public void run() {
//job details
}
};
t.start();
try{
t.join();
}
catch(InterruptedException ex){
ex.printStackTrace();
}
}
相应的,ThreadPoolExecutor例子如下:
Bytecode level: for break in.
Model is attack a normal running Java process or a going to run Java applet. Maybe something like Inject.
1) escape sandbox (SecurityManager) from Applet, or from constraint, for example Load From Uncontrolled source with custom policy;
2) classLoader hijack;
- (NSString *)myString {
@synchronized(self) {
return [[myString retain] autorelease];
}
}
转换1:
注:简称《心经》,附(简单字面翻译)。
观自在菩萨(般若智慧已经达到自在境界的菩萨)
行深般若波罗蜜多时(当他修行般若智慧达到波罗蜜多觉悟境界的时候)
照见五蕴皆空(洞见色、受、想、行、识五蕴乃是人类虚空的妄想)