core: refactor deobfuscator
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package jadx.tests.api;
|
||||
|
||||
import jadx.core.Consts;
|
||||
import jadx.core.dex.nodes.ClassNode;
|
||||
|
||||
import java.io.File;
|
||||
@@ -21,8 +20,7 @@ public class SmaliTest extends IntegrationTest {
|
||||
File smaliFile = getSmaliFile(clsName);
|
||||
File outDex = createTempFile(".dex");
|
||||
compileSmali(smaliFile, outDex);
|
||||
String fullClsName = Consts.DEFAULT_PACKAGE_NAME + "." + clsName;
|
||||
return getClassNodeFromFile(outDex, fullClsName);
|
||||
return getClassNodeFromFile(outDex, clsName);
|
||||
}
|
||||
|
||||
private static File getSmaliFile(String clsName) {
|
||||
|
||||
+35
-35
@@ -12,42 +12,42 @@ import static org.junit.Assert.assertThat;
|
||||
|
||||
public class TestSwitchReturnFromCase extends IntegrationTest {
|
||||
|
||||
public static class TestCls {
|
||||
public void test(int a) {
|
||||
String s = null;
|
||||
if (a > 1000) {
|
||||
return;
|
||||
}
|
||||
switch (a % 4) {
|
||||
case 1:
|
||||
s = "1";
|
||||
break;
|
||||
case 2:
|
||||
s = "2";
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
s = "4";
|
||||
break;
|
||||
case 5:
|
||||
return;
|
||||
}
|
||||
s = "5";
|
||||
}
|
||||
}
|
||||
public static class TestCls {
|
||||
public void test(int a) {
|
||||
String s = null;
|
||||
if (a > 1000) {
|
||||
return;
|
||||
}
|
||||
switch (a % 4) {
|
||||
case 1:
|
||||
s = "1";
|
||||
break;
|
||||
case 2:
|
||||
s = "2";
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
s = "4";
|
||||
break;
|
||||
case 5:
|
||||
return;
|
||||
}
|
||||
s = "5";
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
ClassNode cls = getClassNode(TestCls.class);
|
||||
String code = cls.getCode().toString();
|
||||
@Test
|
||||
public void test() {
|
||||
ClassNode cls = getClassNode(TestCls.class);
|
||||
String code = cls.getCode().toString();
|
||||
|
||||
assertThat(code, containsString("switch (a % 4) {"));
|
||||
assertEquals(5, count(code, "case "));
|
||||
assertEquals(3, count(code, "break;"));
|
||||
assertThat(code, containsString("switch (a % 4) {"));
|
||||
assertEquals(5, count(code, "case "));
|
||||
assertEquals(3, count(code, "break;"));
|
||||
|
||||
assertThat(code, containsOne("s = \"1\";"));
|
||||
assertThat(code, containsOne("s = \"2\";"));
|
||||
assertThat(code, containsOne("s = \"4\";"));
|
||||
assertThat(code, containsOne("s = \"5\";"));
|
||||
}
|
||||
assertThat(code, containsOne("s = \"1\";"));
|
||||
assertThat(code, containsOne("s = \"2\";"));
|
||||
assertThat(code, containsOne("s = \"4\";"));
|
||||
assertThat(code, containsOne("s = \"5\";"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user