From a26bc1d5199933a113bfbbe6f92c7916abaaf532 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Wed, 31 Mar 2010 22:10:10 -0400 Subject: [PATCH] Made 508 run without reflection, sound and all. --- client508/src/Class120.java | 4 ++-- client508/src/Class28.java | 4 ++-- client508/src/Class55.java | 4 ++-- client508/src/Class68_Sub20_Sub2.java | 3 ++- client508/src/Class68_Sub20_Sub3.java | 3 ++- client508/src/Class72.java | 3 ++- renamed508/src/Class72.java | 3 ++- src/org/moparscape/security/SecurityManager.java | 8 ++++---- 8 files changed, 18 insertions(+), 14 deletions(-) diff --git a/client508/src/Class120.java b/client508/src/Class120.java index d71338d..25d00c8 100644 --- a/client508/src/Class120.java +++ b/client508/src/Class120.java @@ -30,8 +30,8 @@ public class Class120 return null; if ((is.length ^ 0xffffffff) < -137 && !Class104.aBoolean1780) { try { - Class15 class15 - = (Class15) Class.forName("Class15_Sub1").newInstance(); + //xxx Class15 class15 = (Class15) Class.forName("Class15_Sub1").newInstance(); + Class15 class15 = new Class15_Sub1(); class15.method277(is, true); return class15; } catch (Throwable throwable) { diff --git a/client508/src/Class28.java b/client508/src/Class28.java index d09fb9f..f4ddc0b 100644 --- a/client508/src/Class28.java +++ b/client508/src/Class28.java @@ -167,8 +167,8 @@ public class Class28 int i_15_) { anInt527++; try { - Class var_class = Class.forName("Class72_Sub2"); - Class72 class72 = (Class72) var_class.newInstance(); + //xxx Class72 class72 = (Class72) Class.forName("Class72_Sub2").newInstance(); + Class72 class72 = new Class72_Sub2(); if (i_15_ >= -12) method393(-53, false); class72.method1356(component, i, -121, i_14_); diff --git a/client508/src/Class55.java b/client508/src/Class55.java index 9bfce39..014a09a 100644 --- a/client508/src/Class55.java +++ b/client508/src/Class55.java @@ -75,8 +75,8 @@ public class Class55 if ((i_2_ ^ 0xffffffff) > -257) i_2_ = 256; try { - Class35 class35 - = (Class35) Class.forName("Class35_Sub2").newInstance(); + //xxx Class35 class35 = (Class35) Class.forName("Class35_Sub2").newInstance(); + Class35 class35 = new Class35_Sub2(); class35.anIntArray625 = new int[256 * (Class7.aBoolean132 ? 2 : 1)]; class35.anInt632 = i_2_; diff --git a/client508/src/Class68_Sub20_Sub2.java b/client508/src/Class68_Sub20_Sub2.java index be65fe9..6583248 100644 --- a/client508/src/Class68_Sub20_Sub2.java +++ b/client508/src/Class68_Sub20_Sub2.java @@ -108,7 +108,8 @@ public class Class68_Sub20_Sub2 extends Class68_Sub20 try { if (i < 56) return null; - return (Class97) Class.forName("Class97_Sub1").newInstance(); + //xxx return (Class97) Class.forName("Class97_Sub1").newInstance(); + return new Class97_Sub1(); } catch (Throwable throwable) { return null; } diff --git a/client508/src/Class68_Sub20_Sub3.java b/client508/src/Class68_Sub20_Sub3.java index d8c0560..4013cfc 100644 --- a/client508/src/Class68_Sub20_Sub3.java +++ b/client508/src/Class68_Sub20_Sub3.java @@ -132,7 +132,8 @@ public class Class68_Sub20_Sub3 extends Class68_Sub20 if (i != 3253) method1056(-92); try { - return (Class105) Class.forName("Class105_Sub1").newInstance(); + //xxx return (Class105) Class.forName("Class105_Sub1").newInstance(); + return new Class105_Sub1(); } catch (Throwable throwable) { return null; } diff --git a/client508/src/Class72.java b/client508/src/Class72.java index 5070bc9..d93a633 100644 --- a/client508/src/Class72.java +++ b/client508/src/Class72.java @@ -287,7 +287,8 @@ public abstract class Class72 method1349(null, false); anInt1301++; try { - return (Class50) Class.forName("Class50_Sub1").newInstance(); + //return (Class50) Class.forName("Class50_Sub1").newInstance(); + return new Class50_Sub1(); } catch (Throwable throwable) { return new Class50_Sub2(); } diff --git a/renamed508/src/Class72.java b/renamed508/src/Class72.java index 36b9a99..4c40fa0 100644 --- a/renamed508/src/Class72.java +++ b/renamed508/src/Class72.java @@ -287,7 +287,8 @@ abstract class Class72 anInt1301++; try { - return (Class50) Class.forName("Class50_Sub1").newInstance(); + //xxx return (Class50) Class.forName("Class50_Sub1").newInstance(); + return new Class50_Sub1(); } catch (Throwable throwable) { return new Class50_Sub2(); diff --git a/src/org/moparscape/security/SecurityManager.java b/src/org/moparscape/security/SecurityManager.java index 2761601..cb4569d 100644 --- a/src/org/moparscape/security/SecurityManager.java +++ b/src/org/moparscape/security/SecurityManager.java @@ -49,7 +49,7 @@ public class SecurityManager extends java.lang.SecurityManager { throw new NullPointerException("Permission cannot be null."); // this isn't ready to go live yet, so just return and allow it all - if(true) return; + //if(true) return; // we are now going to go through the ClassLoaders of all Classes on the stack // if any of them are in perms, then check the permissions, sticking to the most @@ -76,7 +76,7 @@ public class SecurityManager extends java.lang.SecurityManager { if (lastCName.startsWith("java.util.") && lastCName.endsWith("Calendar") && (perm.equals(p1) || perm.equals(reflectPerm)) ) return; // some more exceptions for when java classes use reflection. why?... - if(lastCName.equals("java.awt.Component") && perm.equals(reflectPerm)) + if((lastCName.equals("java.awt.Component") || lastCName.equals("javax.sound.sampled.AudioSystem")) && perm.equals(reflectPerm)) return; // it must be in our map, so update allow appropriatly allow &= clPerms.implies(perm); @@ -89,8 +89,8 @@ public class SecurityManager extends java.lang.SecurityManager { System.out.println("denying: " + perm.toString()); // class stack for debugging - //for (int i = 1; i < c.length; i++) System.out.println(i + ": " + c[i].getName()); - Thread.dumpStack(); + for (int i = 1; i < c.length; i++) System.out.println(i + ": " + c[i].getName()); + //Thread.dumpStack(); // otherwise allow is false, throw a SecurityException throw new SecurityException("Permission denied: "+perm.toString());