Multiple Decompilers At Once
This commit is contained in:
parent
e8b9f39ddf
commit
f21cf41455
1 changed files with 9 additions and 8 deletions
|
@ -11,6 +11,7 @@ import the.bytecode.club.bytecodeviewer.resources.ExternalResources;
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.security.Permission;
|
import java.security.Permission;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
|
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
|
||||||
|
@ -38,17 +39,17 @@ import java.security.Permission;
|
||||||
|
|
||||||
public class SecurityMan extends SecurityManager
|
public class SecurityMan extends SecurityManager
|
||||||
{
|
{
|
||||||
private int blocking = 1; //TODO replace with a more secure system
|
private AtomicInteger blocking = new AtomicInteger(1); //TODO replace with a more secure system
|
||||||
private int silentExec = 1;
|
private AtomicInteger silentExec = new AtomicInteger(1);
|
||||||
private boolean printing = false;
|
private boolean printing = false;
|
||||||
private boolean printingPackage = false;
|
private boolean printingPackage = false;
|
||||||
|
|
||||||
public void silenceExec(boolean b) {
|
public void silenceExec(boolean b) {
|
||||||
silentExec += (b ? 1 : -1);
|
silentExec.addAndGet(b ? 1 : -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resumeBlocking() {
|
public void resumeBlocking() {
|
||||||
blocking++;
|
blocking.incrementAndGet();
|
||||||
}
|
}
|
||||||
|
|
||||||
//slightly safer security system than just a public static boolean being toggled
|
//slightly safer security system than just a public static boolean being toggled
|
||||||
|
@ -69,7 +70,7 @@ public class SecurityMan extends SecurityManager
|
||||||
executedClass.equals(Constants.class.getCanonicalName()) ||
|
executedClass.equals(Constants.class.getCanonicalName()) ||
|
||||||
executedClass.equals(JavaCompiler.class.getCanonicalName()))
|
executedClass.equals(JavaCompiler.class.getCanonicalName()))
|
||||||
{
|
{
|
||||||
blocking--;
|
blocking.decrementAndGet();
|
||||||
}
|
}
|
||||||
else for (StackTraceElement stackTraceElements : Thread.currentThread().getStackTrace())
|
else for (StackTraceElement stackTraceElements : Thread.currentThread().getStackTrace())
|
||||||
{
|
{
|
||||||
|
@ -105,10 +106,10 @@ public class SecurityMan extends SecurityManager
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (allow && blocking <= 0)
|
if (allow && blocking.get() <= 0)
|
||||||
{
|
{
|
||||||
if(silentExec >= 1)
|
if(silentExec.get() >= 1)
|
||||||
System.out.println("Allowing exec: " + cmd);
|
System.err.println("Allowing exec: " + cmd);
|
||||||
}
|
}
|
||||||
else throw new SecurityException("BCV is awesome, blocking(" + blocking + ") exec " + cmd);
|
else throw new SecurityException("BCV is awesome, blocking(" + blocking + ") exec " + cmd);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue