Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

OSRS instrumentation bot "Bogdan BOT"


Rekomendowane odpowiedzi

Opublikowano

rPC27EB.png

 
Witam postanowiłem sobie napisać bota do nowej-starej wersji runescape aka runescape 2007.


Bot wykorzystuje instrumentacje w javie tzn w skrócie nie jest zależny od klienta na którym chodzi np. można go odpalić na rsbuddy, w przegladarce etc.
Jeśli chodzi o szybkość to instrumentacja daje spory speed up dla dostępu do zmiennych, dla zmienne typów znanych (jav-owych) jest ona identyczna jak w przypadku botów o zastosowaniu injekcji. W przypadków wrapperów jest gorzej, ale dalej o niebo lepiej niż u botów wykorzystujących refleksję.
Schemat działania bota jest prosty : podpięcie pod jvm -> dodanie paru callbacków -> definicja klas api -> uruchomienie bota

Projekt będzie utrzymywany do momentu napisania wszystkich potrzebnych rzeczy które się używa podczas normalnego pisania skryptów. Następnie będzie rozważona opcja wypuszczenia tego na GPL bądź też części dla celów edukacyjnych.

Pare screenów:

2015-01-10-19-11-24.png
2015-01-21-02-21-01.png
2015-01-10-19-14-35.png
get_preview.png?dl=1

o8HfXuR.png

CAPSLOCK TEAM - LEPIEJ WIDOCZNI WIDOCZNIE LEPSI

Cała prawda o LittleBlack

Opublikowano

 

 

//
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package pl.polishcivil.polishbot.api.rs;

import pl.polishcivil.polishbot.api.core.reflection.Reflection;
import pl.polishcivil.polishbot.api.rs.RSCache;
import pl.polishcivil.polishbot.api.rs.RSCollisionMap;
import pl.polishcivil.polishbot.api.rs.RSHashTable;
import pl.polishcivil.polishbot.api.rs.RSLandscape;
import pl.polishcivil.polishbot.api.rs.RSNodeDeque;
import pl.polishcivil.polishbot.api.rs.RSNpc;
import pl.polishcivil.polishbot.api.rs.RSPlayer;
import pl.polishcivil.polishbot.api.rs.RSWidget;

public class RSClient {
    public RSClient() {
    }

    public static boolean isMenuOpen() {
        throw new RuntimeException("getter not implemented: RSClient@isMenuOpen");
    }

    public static int getMenuCount() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "il", true)) * -317220201;
    }

    public static int getCameraX() {
        return Reflection.getInteger(Reflection.getClass("ae"), Reflection.getOffset("ae", "fe", true)) * -178649267;
    }

    public static int getCameraZ() {
        return Reflection.getInteger(Reflection.getClass("d"), Reflection.getOffset("d", "fw", true)) * -1331796705;
    }

    public static int getCameraY() {
        return Reflection.getInteger(Reflection.getClass("e"), Reflection.getOffset("e", "ff", true)) * 2110342301;
    }

    public static int getCameraPitch() {
        return Reflection.getInteger(Reflection.getClass("y"), Reflection.getOffset("y", "fc", true)) * 128410095;
    }

    public static int getCameraYaw() {
        return Reflection.getInteger(Reflection.getClass("s"), Reflection.getOffset("s", "fd", true)) * 255476823;
    }

    public static String getPassword() {
        return (String)Reflection.getRawObject(Reflection.getClass("ae"), Reflection.getOffset("ae", "ah", true));
    }

    public static RSCollisionMap[] getCollisionMaps() {
        Object[] var1 = (Object[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "w", true));
        if(var1 != null) {
            RSCollisionMap[] var2 = new RSCollisionMap[var1.length];

            for(int var3 = 0; var3 < var1.length; ++var3) {
                if(var1[var3] != null) {
                    var2[var3] = new RSCollisionMap(var1[var3]);
                }
            }

            return var2;
        } else {
            return new RSCollisionMap[0];
        }
    }

    public static String getUsername() {
        return (String)Reflection.getRawObject(Reflection.getClass("ae"), Reflection.getOffset("ae", "an", true));
    }

    public static int[] getWidgetBoundsY() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "ln", true));
    }

    public static RSHashTable getWidgetTable() {
        Object var1 = (Object)Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "ja", true));
        return var1 != null?new RSHashTable(var1):null;
    }

    public static int[] getWidgetBoundsWidth() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "lt", true));
    }

    public static int[] getWidgetBoundsHeight() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "lm", true));
    }

    public static int getHintArrowNpcUid() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "ae", true)) * -969839247;
    }

    public static int getHintArrowPlayerUid() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "ak", true)) * -474598351;
    }

    public static RSCache getItemConfigCache() {
        Object var1 = (Object)Reflection.getRawObject(Reflection.getClass("aq"), Reflection.getOffset("aq", "k", true));
        return var1 != null?new RSCache(var1):null;
    }

    public static RSCache getNpcConfigCache() {
        Object var1 = (Object)Reflection.getRawObject(Reflection.getClass("ab"), Reflection.getOffset("ab", "y", true));
        return var1 != null?new RSCache(var1):null;
    }

    public static RSCache getObjectConfigCache() {
        Object var1 = (Object)Reflection.getRawObject(Reflection.getClass("an"), Reflection.getOffset("an", "r", true));
        return var1 != null?new RSCache(var1):null;
    }

    public static int getDestinationX() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "mm", true)) * -570644689;
    }

    public static int getDestinationY() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "mb", true)) * 901660271;
    }

    public static int getRunPercentage() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "jj", true)) * -1606673831;
    }

    public static int getFloor() {
        return Reflection.getInteger(Reflection.getClass("i"), Reflection.getOffset("i", "hq", true)) * -674040823;
    }

    public static int getMinimapAngle() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "dk", true)) * -438245207;
    }

    public static int getMinimapOffset() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "dc", true)) * 1293456851;
    }

    public static int getMinimapScale() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "fo", true)) * -363344241;
    }

    public static int getOffsetX() {
        return Reflection.getInteger(Reflection.getClass("cn"), Reflection.getOffset("cn", "cl", true)) * -2018718993;
    }

    public static int getOffsetY() {
        return Reflection.getInteger(Reflection.getClass("cf"), Reflection.getOffset("cf", "cp", true)) * -2061813269;
    }

    public static int[][][] getTileHeights() {
        return (int[][][])Reflection.getRawObject(Reflection.getClass("l"), Reflection.getOffset("l", "c", true));
    }

    public static int getClientState() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "z", true)) * 58094443;
    }

    public static RSNodeDeque[][][] getGroundItems() {
        Object[][][] var1 = (Object[][][])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "ho", true));
        if(var1 == null) {
            return new RSNodeDeque[0][][];
        } else {
            RSNodeDeque[][][] var2 = new RSNodeDeque[var1.length][][];

            for(int var3 = 0; var3 < var1.length; ++var3) {
                int var4 = 0;
                if(var1[var3] != null) {
                    for(var2[var3] = new RSNodeDeque[var1[var3].length][]; var4 < var1[var3].length; ++var4) {
                        int var5 = 0;
                        if(var1[var3][var4] != null) {
                            for(var2[var3][var4] = new RSNodeDeque[var1[var3][var4].length]; var5 < var1[var3][var4].length; ++var5) {
                                if(var1[var3][var4][var5] != null) {
                                    var2[var3][var4][var5] = new RSNodeDeque(var1[var3][var4][var5]);
                                }
                            }
                        }
                    }
                }
            }

            return var2;
        }
    }

    public static byte[][][] getLandscapeMeta() {
        return (byte[][][])Reflection.getRawObject(Reflection.getClass("l"), Reflection.getOffset("l", "j", true));
    }

    public static int getPlayerIndex() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "hr", true)) * -1694749535;
    }

    public static int getHintArrowType() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "ag", true)) * 244945637;
    }

    public static int getCycle() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "u", true)) * -729316653;
    }

    public static int getHintArrowX() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "ap", true)) * -1016931211;
    }

    public static RSCache getVarbitCache() {
        Object var1 = (Object)Reflection.getRawObject(Reflection.getClass("ay"), Reflection.getOffset("ay", "j", true));
        return var1 != null?new RSCache(var1):null;
    }

    public static int getHintArrowY() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "ao", true)) * 346969321;
    }

    public static int getCrosshairIndex() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "ag", true)) * 244945637;
    }

    public static int[] getWidgetBoundsX() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "lf", true));
    }

    public static String[] getMenuActions() {
        return (String[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "ig", true));
    }

    public static String[] getMenuOptions() {
        return (String[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "if", true));
    }

    public static RSNpc[] getNpcs() {
        Object[] var1 = (Object[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "bx", true));
        if(var1 != null) {
            RSNpc[] var2 = new RSNpc[var1.length];

            for(int var3 = 0; var3 < var1.length; ++var3) {
                if(var1[var3] != null) {
                    var2[var3] = new RSNpc(var1[var3]);
                }
            }

            return var2;
        } else {
            return new RSNpc[0];
        }
    }

    public static int getSelectionType() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "gw", true)) * 170950523;
    }

    public static int getMenuX() {
        return Reflection.getInteger(Reflection.getClass("ds"), Reflection.getOffset("ds", "hx", true)) * -1795336413;
    }

    public static int[] getNpcIndices() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "bd", true));
    }

    public static int getMenuY() {
        return Reflection.getInteger(Reflection.getClass("n"), Reflection.getOffset("n", "hi", true)) * 683542247;
    }

    public static RSLandscape getLandscape() {
        Object var1 = (Object)Reflection.getRawObject(Reflection.getClass("el"), Reflection.getOffset("el", "da", true));
        return var1 != null?new RSLandscape(var1):null;
    }

    public static int getMenuHeight() {
        return Reflection.getInteger(Reflection.getClass("aq"), Reflection.getOffset("aq", "is", true)) * 1804482685;
    }

    public static int getMenuWidth() {
        return Reflection.getInteger(Reflection.getClass("w"), Reflection.getOffset("w", "ib", true)) * -939510455;
    }

    public static int getSelectionIndex() {
        return Reflection.getInteger(Reflection.getClass("client"), Reflection.getOffset("client", "hr", true)) * -1694749535;
    }

    public static int[] getSkillLevels1() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "hu", true));
    }

    public static int[] getSkillExps() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "hz", true));
    }

    public static RSWidget[][] getWidgets() {
        Object[][] var1 = (Object[][])Reflection.getRawObject(Reflection.getClass("ed"), Reflection.getOffset("ed", "c", true));
        if(var1 == null) {
            return new RSWidget[0][];
        } else {
            RSWidget[][] var2 = new RSWidget[var1.length][];

            for(int var3 = 0; var3 < var1.length; ++var3) {
                int var4 = 0;
                if(var1[var3] != null) {
                    for(var2[var3] = new RSWidget[var1[var3].length]; var4 < var1[var3].length; ++var4) {
                        if(var1[var3][var4] != null) {
                            var2[var3][var4] = new RSWidget(var1[var3][var4]);
                        }
                    }
                }
            }

            return var2;
        }
    }

    public static RSPlayer getPlayer() {
        Object var1 = (Object)Reflection.getRawObject(Reflection.getClass("n"), Reflection.getOffset("n", "hy", true));
        return var1 != null?new RSPlayer(var1):null;
    }

    public static int[] getVarpbits() {
        return (int[])Reflection.getRawObject(Reflection.getClass("fa"), Reflection.getOffset("fa", "y", true));
    }

    public static int[] getSkillLevels2() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "hj", true));
    }

    public static int[] getPlayerIndices() {
        return (int[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "gx", true));
    }

    public static RSPlayer[] getPlayers() {
        Object[] var1 = (Object[])Reflection.getRawObject(Reflection.getClass("client"), Reflection.getOffset("client", "gg", true));
        if(var1 != null) {
            RSPlayer[] var2 = new RSPlayer[var1.length];

            for(int var3 = 0; var3 < var1.length; ++var3) {
                if(var1[var3] != null) {
                    var2[var3] = new RSPlayer(var1[var3]);
                }
            }

            return var2;
        } else {
            return new RSPlayer[0];
        }
    }
}

 

Mrehehehe

o8HfXuR.png

CAPSLOCK TEAM - LEPIEJ WIDOCZNI WIDOCZNIE LEPSI

Cała prawda o LittleBlack

  • 2 tygodnie później...
Opublikowano

Przykladowy control flow metody:

  public static long y(CharSequence a)
    {
        int i = a.length();
        Object a0 = a;
        long j0 = 0L;
        int i0 = 0;
        label0: while(true)
        {
            if (i0 < i)
            {
                j0 = j0 * 37L;
                int i1 = ((CharSequence)a0).charAt(i0);
                label2: {
                    label3: {
                        if (i1 < 65)
                        {
                            break label3;
                        }
                        if (i1 > 90)
                        {
                            break label3;
                        }
                        j0 = j0 + (long)(i1 + 1 - 65);
                        break label2;
                    }
                    label1: {
                        if (i1 < 97)
                        {
                            break label1;
                        }
                        if (i1 > 122)
                        {
                            break label1;
                        }
                        j0 = j0 + (long)(i1 + 1 - 97);
                        break label2;
                    }
                    if (i1 >= 48 && i1 <= 57)
                    {
                        j0 = j0 + (long)(i1 + 27 - 48);
                    }
                }
                if (j0 < 177917621779460413L)
                {
                    i0 = i0 + 1;
                    continue label0;
                }
            }
            while(true)
            {
                if (j0 % 37L == 0L && 0L != j0)
                {
                    j0 = j0 / 37L;
                    continue;
                }
                return j0;
            }
        }
    }

get_preview.png?dl=1

o8HfXuR.png

CAPSLOCK TEAM - LEPIEJ WIDOCZNI WIDOCZNIE LEPSI

Cała prawda o LittleBlack

  • 3 tygodnie później...
  • 2 miesiące temu...
  • 3 tygodnie później...
Opublikowano

Deobfuskacja działa. Przykład:

 

Oryginalny: http://pastebin.com/jcKzvxxs

 

 

//ORIGINAL
static final void z(final int n, final int n2, final int n3, final int n4, final int n5, final int n6, final int n7, final cb cb, final hk hk, final int n8) {
        try {
            final ag e = m.e(n5, (byte)71);
            int n9 = 0;
            int n10 = 0;
            Label_2761: {
                if (n6 != 1) {
                    if (n8 != 1922003277) {
                        throw new IllegalStateException();
                    }
                    if (3 != n6) {
                        n9 = e.z * 1527764841;
                        n10 = e.y * -1050702509;
                        break Label_2761;
                    }
                    if (n8 != 1922003277) {
                        throw new IllegalStateException();
                    }
                }
                n9 = -1050702509 * e.y;
                n10 = 1527764841 * e.z;
            }
            int n11;
            int n12;
            if (n9 + n3 <= 104) {
                n11 = (n9 >> 1) + n3;
                n12 = (1 + n9 >> 1) + n3;
            }
            else {
                n11 = n3;
                n12 = n3 + 1;
            }
            int n13;
            int n14;
            if (n4 + n10 <= 104) {
                if (n8 != 1922003277) {
                    throw new IllegalStateException();
                }
                n13 = n4 + (n10 >> 1);
                n14 = n4 + (n10 + 1 >> 1);
            }
            else {
                n13 = n4;
                n14 = n4 + 1;
            }
            final int[][] array = w.e[n2];
            final int n15 = array[n11][n13] + array[n12][n13] + array[n11][n14] + array[n12][n14] >> 2;
            final int n16 = (n9 << 6) + (n3 << 7);
            final int n17 = (n10 << 6) + (n4 << 7);
            int n18 = 1073741824 + ((n5 << 14) + (n3 + (n4 << 7)));
            if (e.b * 1715787739 == 0) {
                if (n8 != 1922003277) {
                    throw new IllegalStateException();
                }
                n18 -= Integer.MIN_VALUE;
            }
            int n19 = n7 + (n6 << 6);
            if (e.al * 970437277 == 1) {
                if (n8 != 1922003277) {
                    throw new IllegalStateException();
                }
                n19 += 256;
            }
            if (22 != n7) {
                if (n7 != 10) {
                    if (n8 != 1922003277) {
                        throw new IllegalStateException();
                    }
                    if (n7 == 11) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                    }
                    else if (n7 >= 12) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        Object r;
                        if (-1 == -175609259 * e.p && null == e.ak) {
                            if (n8 != 1922003277) {
                                return;
                            }
                            r = e.r(n7, n6, array, n16, n15, n17, (byte)(-102));
                        }
                        else {
                            r = new h(n5, n7, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                        }
                        cb.o(n, n3, n4, n15, 1, 1, (ch)r, 0, n18, n19);
                        if (e.q * -1945821617 != 0) {
                            if (n8 != 1922003277) {
                                return;
                            }
                            hk.l(n3, n4, n9, n10, e.d, (byte)(-31));
                        }
                        return;
                    }
                    else if (n7 == 0) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        Object r2 = null;
                        Label_1098: {
                            if (e.p * -175609259 == -1) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                if (e.ak == null) {
                                    r2 = e.r(0, n6, array, n16, n15, n17, (byte)(-14));
                                    break Label_1098;
                                }
                            }
                            r2 = new h(n5, 0, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                        }
                        cb.f(n, n3, n4, n15, (ch)r2, (ch)null, w.q[n6], 0, n18, n19);
                        if (0 != -1945821617 * e.q) {
                            hk.a(n3, n4, n7, n6, e.d, -1583620258);
                        }
                        return;
                    }
                    else if (n7 == 1) {
                        if (n8 != 1922003277) {
                            return;
                        }
                        Object r3 = null;
                        Label_1347: {
                            if (e.p * -175609259 == -1) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                if (e.ak == null) {
                                    if (n8 != 1922003277) {
                                        throw new IllegalStateException();
                                    }
                                    r3 = e.r(1, n6, array, n16, n15, n17, (byte)(-21));
                                    break Label_1347;
                                }
                            }
                            r3 = new h(n5, 1, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                        }
                        cb.f(n, n3, n4, n15, (ch)r3, (ch)null, w.d[n6], 0, n18, n19);
                        if (-1945821617 * e.q != 0) {
                            hk.a(n3, n4, n7, n6, e.d, -1687873710);
                        }
                        return;
                    }
                    else if (2 == n7) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        final int n20 = 1 + n6 & 0x3;
                        Object r4 = null;
                        Object r5 = null;
                        Label_1512: {
                            if (e.p * -175609259 == -1) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                if (null == e.ak) {
                                    if (n8 != 1922003277) {
                                        return;
                                    }
                                    r4 = e.r(2, 4 + n6, array, n16, n15, n17, (byte)(-21));
                                    r5 = e.r(2, n20, array, n16, n15, n17, (byte)(-80));
                                    break Label_1512;
                                }
                            }
                            r4 = new h(n5, 2, 4 + n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                            r5 = new h(n5, 2, n20, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                        }
                        cb.f(n, n3, n4, n15, (ch)r4, (ch)r5, w.q[n6], w.q[n20], n18, n19);
                        if (0 != e.q * -1945821617) {
                            if (n8 != 1922003277) {
                                throw new IllegalStateException();
                            }
                            hk.a(n3, n4, n7, n6, e.d, -462332273);
                        }
                        return;
                    }
                    else if (3 == n7) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        Object r6 = null;
                        Label_2917: {
                            if (-175609259 * e.p == -1) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                if (e.ak == null) {
                                    r6 = e.r(3, n6, array, n16, n15, n17, (byte)(-39));
                                    break Label_2917;
                                }
                            }
                            r6 = new h(n5, 3, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                        }
                        cb.f(n, n3, n4, n15, (ch)r6, (ch)null, w.d[n6], 0, n18, n19);
                        if (0 != -1945821617 * e.q) {
                            hk.a(n3, n4, n7, n6, e.d, -436307848);
                        }
                        return;
                    }
                    else if (n7 == 9) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        Object r7 = null;
                        Label_2396: {
                            if (-175609259 * e.p == -1) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                if (null == e.ak) {
                                    if (n8 != 1922003277) {
                                        throw new IllegalStateException();
                                    }
                                    r7 = e.r(n7, n6, array, n16, n15, n17, (byte)(-88));
                                    break Label_2396;
                                }
                            }
                            r7 = new h(n5, n7, n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
                        }
                        cb.o(n, n3, n4, n15, 1, 1, (ch)r7, 0, n18, n19);
                        if (0 != -1945821617 * e.q) {
                            if (n8 != 1922003277) {
                                throw new IllegalStateException();
                            }
                            hk.l(n3, n4, n9, n10, e.d, (byte)(-74));
                        }
                        return;
                    }
                    else if (4 == n7) {
                        if (n8 != 1922003277) {
                            return;
                        }
                        while (true) {
                            Label_2073: {
                                if (-1 != e.p * -175609259) {
                                    break Label_2073;
                                }
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                if (e.ak != null) {
                                    break Label_2073;
                                }
                                if (n8 != 1922003277) {
                                    return;
                                }
                                final Object r8 = e.r(4, n6, array, n16, n15, n17, (byte)(-52));
                                cb.g(n, n3, n4, n15, (ch)r8, (ch)null, w.q[n6], 0, 0, 0, n18, n19);
                                return;
                            }
                            final Object r8 = new h(n5, 4, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                            continue;
                        }
                    }
                    else if (5 == n7) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        int n21 = 16;
                        final int ax = cb.ax(n, n3, n4);
                        if (ax != 0) {
                            if (n8 != 1922003277) {
                                return;
                            }
                            n21 = m.e(ax >> 14 & 0x7FFF, (byte)54).k * 1127355445;
                        }
                        Object r9 = null;
                        Label_2261: {
                            if (-1 == -175609259 * e.p) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                if (e.ak == null) {
                                    if (n8 != 1922003277) {
                                        throw new IllegalStateException();
                                    }
                                    r9 = e.r(4, n6, array, n16, n15, n17, (byte)(-115));
                                    break Label_2261;
                                }
                            }
                            r9 = new h(n5, 4, n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
                        }
                        cb.g(n, n3, n4, n15, (ch)r9, (ch)null, w.q[n6], 0, w.b[n6] * n21, w.x[n6] * n21, n18, n19);
                        return;
                    }
                    else {
                        if (n7 == 6) {
                            int n22 = 8;
                            final int ax2 = cb.ax(n, n3, n4);
                            if (ax2 != 0) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                n22 = m.e(ax2 >> 14 & 0x7FFF, (byte)(-53)).k * 1127355445 / 2;
                            }
                            while (true) {
                                Label_1784: {
                                    if (-1 != -175609259 * e.p) {
                                        break Label_1784;
                                    }
                                    if (n8 != 1922003277) {
                                        return;
                                    }
                                    if (e.ak != null) {
                                        break Label_1784;
                                    }
                                    final Object r10 = e.r(4, 4 + n6, array, n16, n15, n17, (byte)(-109));
                                    cb.g(n, n3, n4, n15, (ch)r10, (ch)null, 256, n6, w.n[n6] * n22, w.v[n6] * n22, n18, n19);
                                    return;
                                }
                                final Object r10 = new h(n5, 4, 4 + n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
                                continue;
                            }
                        }
                        if (n7 == 7) {
                            if (n8 != 1922003277) {
                                return;
                            }
                            final int n23 = n6 + 2 & 0x3;
                            Object r11 = null;
                            Label_1660: {
                                if (-1 == e.p * -175609259) {
                                    if (n8 != 1922003277) {
                                        return;
                                    }
                                    if (null == e.ak) {
                                        if (n8 != 1922003277) {
                                            return;
                                        }
                                        r11 = e.r(4, n23 + 4, array, n16, n15, n17, (byte)(-101));
                                        break Label_1660;
                                    }
                                }
                                r11 = new h(n5, 4, 4 + n23, n2, n3, n4, e.p * -175609259, true, (ch)null);
                            }
                            cb.g(n, n3, n4, n15, (ch)r11, (ch)null, 256, n23, 0, 0, n18, n19);
                            return;
                        }
                        else {
                            if (n7 != 8) {
                                return;
                            }
                            if (n8 != 1922003277) {
                                return;
                            }
                            int n24 = 8;
                            final int ax3 = cb.ax(n, n3, n4);
                            if (ax3 != 0) {
                                n24 = m.e(ax3 >> 14 & 0x7FFF, (byte)40).k * 1127355445 / 2;
                            }
                            final int n25 = n6 + 2 & 0x3;
                            Object r12 = null;
                            Object r13 = null;
                            Label_2873: {
                                if (e.p * -175609259 == -1) {
                                    if (n8 != 1922003277) {
                                        throw new IllegalStateException();
                                    }
                                    if (null == e.ak) {
                                        r12 = e.r(4, 4 + n6, array, n16, n15, n17, (byte)(-18));
                                        r13 = e.r(4, 4 + n25, array, n16, n15, n17, (byte)(-4));
                                        break Label_2873;
                                    }
                                }
                                r12 = new h(n5, 4, n6 + 4, n2, n3, n4, e.p * -175609259, true, (ch)null);
                                r13 = new h(n5, 4, n25 + 4, n2, n3, n4, e.p * -175609259, true, (ch)null);
                            }
                            cb.g(n, n3, n4, n15, (ch)r12, (ch)r13, 256, n6, w.n[n6] * n24, n24 * w.v[n6], n18, n19);
                            return;
                        }
                    }
                }
                while (true) {
                    Label_1736: {
                        if (-1 != -175609259 * e.p) {
                            break Label_1736;
                        }
                        if (n8 != 1922003277) {
                            return;
                        }
                        if (null != e.ak) {
                            break Label_1736;
                        }
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        final Object r14 = e.r(10, n6, array, n16, n15, n17, (byte)(-1));
                        if (r14 != null) {
                            if (n8 != 1922003277) {
                                throw new IllegalStateException();
                            }
                            final int n26 = n15;
                            final int n27 = n9;
                            final int n28 = n10;
                            final ch ch = (ch)r14;
                            int n29;
                            if (11 == n7) {
                                if (n8 != 1922003277) {
                                    throw new IllegalStateException();
                                }
                                n29 = 256;
                            }
                            else {
                                n29 = 0;
                            }
                            cb.o(n, n3, n4, n26, n27, n28, ch, n29, n18, n19);
                        }
                        if (-1945821617 * e.q != 0) {
                            if (n8 != 1922003277) {
                                return;
                            }
                            hk.l(n3, n4, n9, n10, e.d, (byte)(-10));
                        }
                        return;
                    }
                    final Object r14 = new h(n5, 10, n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
                    continue;
                }
            }
            if (n8 != 1922003277) {
                throw new IllegalStateException();
            }
            Object r15 = null;
            Label_1687: {
                if (-1 == -175609259 * e.p) {
                    if (n8 != 1922003277) {
                        return;
                    }
                    if (null == e.ak) {
                        if (n8 != 1922003277) {
                            throw new IllegalStateException();
                        }
                        r15 = e.r(22, n6, array, n16, n15, n17, (byte)(-35));
                        break Label_1687;
                    }
                }
                r15 = new h(n5, 22, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.i(n, n3, n4, n15, (ch)r15, n18, n19);
            if (1 == e.q * -1945821617) {
                if (n8 != 1922003277) {
                    throw new IllegalStateException();
                }
                hk.u(n3, n4, -534775903);
            }
        }
        catch (RuntimeException ex) {
            throw k.a((Throwable)ex, "b.z(" + ')');
        }
    }

 

 

 

Po deobfuskacji: http://pastebin.com/uesLeADm

 

 

//DEOBFUSCATED    
static final void z(final int n, final int n2, final int n3, final int n4, final int n5, final int n6, final int n7, final cb cb, final hk hk, final int n8) {
        final ag e = m.e(n5, (byte)71);
        int n9;
        int n10;
        if (n6 == 1 || 3 == n6) {
            n9 = -1050702509 * e.y;
            n10 = 1527764841 * e.z;
        }
        else {
            n9 = e.z * 1527764841;
            n10 = e.y * -1050702509;
        }
        int n11;
        int n12;
        if (n9 + n3 <= 104) {
            n11 = (n9 >> 1) + n3;
            n12 = (1 + n9 >> 1) + n3;
        }
        else {
            n11 = n3;
            n12 = n3 + 1;
        }
        int n13;
        int n14;
        if (n4 + n10 <= 104) {
            n13 = n4 + (n10 >> 1);
            n14 = n4 + (n10 + 1 >> 1);
        }
        else {
            n13 = n4;
            n14 = n4 + 1;
        }
        final int[][] array = w.e[n2];
        final int n15 = array[n11][n13] + array[n12][n13] + array[n11][n14] + array[n12][n14] >> 2;
        final int n16 = (n9 << 6) + (n3 << 7);
        final int n17 = (n10 << 6) + (n4 << 7);
        int n18 = 1073741824 + ((n5 << 14) + (n3 + (n4 << 7)));
        if (e.b * 1715787739 == 0) {
            n18 -= Integer.MIN_VALUE;
        }
        int n19 = n7 + (n6 << 6);
        if (e.al * 970437277 == 1) {
            n19 += 256;
        }
        if (22 == n7) {
            Object r;
            if (-1 == -175609259 * e.p && null == e.ak) {
                r = e.r(22, n6, array, n16, n15, n17, (byte)(-35));
            }
            else {
                r = new h(n5, 22, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.i(n, n3, n4, n15, (ch)r, n18, n19);
            if (1 != e.q * -1945821617) {
                return;
            }
            hk.u(n3, n4, -534775903);
        }
        if (n7 == 10 || n7 == 11) {
            Object r2;
            if (-1 == -175609259 * e.p && null == e.ak) {
                r2 = e.r(10, n6, array, n16, n15, n17, (byte)(-1));
            }
            else {
                r2 = new h(n5, 10, n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
            }
            if (r2 != null) {
                cb.o(n, n3, n4, n15, n9, n10, (ch)r2, (11 == n7) ? 256 : 0, n18, n19);
            }
            if (-1945821617 * e.q != 0) {
                hk.l(n3, n4, n9, n10, e.d, (byte)(-10));
            }
            return;
        }
        if (n7 >= 12) {
            Object r3;
            if (-1 == -175609259 * e.p && null == e.ak) {
                r3 = e.r(n7, n6, array, n16, n15, n17, (byte)(-102));
            }
            else {
                r3 = new h(n5, n7, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.o(n, n3, n4, n15, 1, 1, (ch)r3, 0, n18, n19);
            if (e.q * -1945821617 != 0) {
                hk.l(n3, n4, n9, n10, e.d, (byte)(-31));
            }
            return;
        }
        if (n7 == 0) {
            Object r4;
            if (e.p * -175609259 == -1 && e.ak == null) {
                r4 = e.r(0, n6, array, n16, n15, n17, (byte)(-14));
            }
            else {
                r4 = new h(n5, 0, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.f(n, n3, n4, n15, (ch)r4, (ch)null, w.q[n6], 0, n18, n19);
            if (0 != -1945821617 * e.q) {
                hk.a(n3, n4, n7, n6, e.d, -1583620258);
            }
            return;
        }
        if (n7 == 1) {
            Object r5;
            if (e.p * -175609259 == -1 && e.ak == null) {
                r5 = e.r(1, n6, array, n16, n15, n17, (byte)(-21));
            }
            else {
                r5 = new h(n5, 1, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.f(n, n3, n4, n15, (ch)r5, (ch)null, w.d[n6], 0, n18, n19);
            if (-1945821617 * e.q != 0) {
                hk.a(n3, n4, n7, n6, e.d, -1687873710);
            }
            return;
        }
        if (2 == n7) {
            final int n20 = 1 + n6 & 0x3;
            Object r6;
            Object r7;
            if (e.p * -175609259 == -1 && null == e.ak) {
                r6 = e.r(2, 4 + n6, array, n16, n15, n17, (byte)(-21));
                r7 = e.r(2, n20, array, n16, n15, n17, (byte)(-80));
            }
            else {
                r6 = new h(n5, 2, 4 + n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
                r7 = new h(n5, 2, n20, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.f(n, n3, n4, n15, (ch)r6, (ch)r7, w.q[n6], w.q[n20], n18, n19);
            if (0 != e.q * -1945821617) {
                hk.a(n3, n4, n7, n6, e.d, -462332273);
            }
            return;
        }
        if (3 == n7) {
            Object r8;
            if (-175609259 * e.p == -1 && e.ak == null) {
                r8 = e.r(3, n6, array, n16, n15, n17, (byte)(-39));
            }
            else {
                r8 = new h(n5, 3, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.f(n, n3, n4, n15, (ch)r8, (ch)null, w.d[n6], 0, n18, n19);
            if (0 != -1945821617 * e.q) {
                hk.a(n3, n4, n7, n6, e.d, -436307848);
            }
            return;
        }
        if (n7 == 9) {
            Object r9;
            if (-175609259 * e.p == -1 && null == e.ak) {
                r9 = e.r(n7, n6, array, n16, n15, n17, (byte)(-88));
            }
            else {
                r9 = new h(n5, n7, n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
            }
            cb.o(n, n3, n4, n15, 1, 1, (ch)r9, 0, n18, n19);
            if (0 != -1945821617 * e.q) {
                hk.l(n3, n4, n9, n10, e.d, (byte)(-74));
            }
            return;
        }
        if (4 == n7) {
            Object r10;
            if (-1 == e.p * -175609259 && e.ak == null) {
                r10 = e.r(4, n6, array, n16, n15, n17, (byte)(-52));
            }
            else {
                r10 = new h(n5, 4, n6, n2, n3, n4, -175609259 * e.p, true, (ch)null);
            }
            cb.g(n, n3, n4, n15, (ch)r10, (ch)null, w.q[n6], 0, 0, 0, n18, n19);
            return;
        }
        if (5 == n7) {
            int n21 = 16;
            final int ax = cb.ax(n, n3, n4);
            if (ax != 0) {
                n21 = m.e(ax >> 14 & 0x7FFF, (byte)54).k * 1127355445;
            }
            if (-1 == -175609259 * e.p && e.ak == null) {
                cb.g(n, n3, n4, n15, (ch)e.r(4, n6, array, n16, n15, n17, (byte)(-115)), (ch)null, w.q[n6], 0, w.b[n6] * n21, w.x[n6] * n21, n18, n19);
                return;
            }
            final h h = new h(n5, 4, n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
        }
        if (n7 == 6) {
            int n22 = 8;
            final int ax2 = cb.ax(n, n3, n4);
            if (ax2 != 0) {
                n22 = m.e(ax2 >> 14 & 0x7FFF, (byte)(-53)).k * 1127355445 / 2;
            }
            Object r11;
            if (-1 == -175609259 * e.p && e.ak == null) {
                r11 = e.r(4, 4 + n6, array, n16, n15, n17, (byte)(-109));
            }
            else {
                r11 = new h(n5, 4, 4 + n6, n2, n3, n4, e.p * -175609259, true, (ch)null);
            }
            cb.g(n, n3, n4, n15, (ch)r11, (ch)null, 256, n6, w.n[n6] * n22, w.v[n6] * n22, n18, n19);
            return;
        }
        if (n7 == 7) {
            final int n23 = n6 + 2 & 0x3;
            Object r12;
            if (-1 == e.p * -175609259 && null == e.ak) {
                r12 = e.r(4, n23 + 4, array, n16, n15, n17, (byte)(-101));
            }
            else {
                r12 = new h(n5, 4, 4 + n23, n2, n3, n4, e.p * -175609259, true, (ch)null);
            }
            cb.g(n, n3, n4, n15, (ch)r12, (ch)null, 256, n23, 0, 0, n18, n19);
            return;
        }
        if (n7 != 8) {
            return;
        }
        int n24 = 8;
        final int ax3 = cb.ax(n, n3, n4);
        if (ax3 != 0) {
            n24 = m.e(ax3 >> 14 & 0x7FFF, (byte)40).k * 1127355445 / 2;
        }
        final int n25 = n6 + 2 & 0x3;
        if (e.p * -175609259 == -1 && null == e.ak) {
            cb.g(n, n3, n4, n15, (ch)e.r(4, 4 + n6, array, n16, n15, n17, (byte)(-18)), (ch)e.r(4, 4 + n25, array, n16, n15, n17, (byte)(-4)), 256, n6, w.n[n6] * n24, n24 * w.v[n6], n18, n19);
            return;
        }
        final h h2 = new h(n5, 4, n6 + 4, n2, n3, n4, e.p * -175609259, true, (ch)null);
        final h h3 = new h(n5, 4, n25 + 4, n2, n3, n4, e.p * -175609259, true, (ch)null);
    }

 

 

708121422388637873334.png

Opublikowano

Fajny BOT'ek mam takie pytanie.. JAK WY robicie te schematy działania ?? :D

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...