求助反编译问题

编程自留地 2012-04-17 03:17:39
请问下面这个方法怎么还原成正常代码?
public static ArrayList getServers(SQLiteDatabase sqlitedatabase)
{
Object obj = null;
Object obj1 = null;
Cursor cursor;
String as[] = new String[22];
as[0] = "_id";
as[1] = "description";
as[2] = "host";
as[3] = "port";
as[4] = "userName";
as[5] = "password";
as[6] = "domain";
as[7] = "resolution";
as[8] = "colorDepth";
as[9] = "soundOption";
as[10] = "connectToConsole";
as[11] = "networkSpeedOption";
as[12] = "enableCompression";
as[13] = "disableCursorShadow";
as[14] = "disableCursorBlinking";
as[15] = "fullWindowDrag";
as[16] = "disableMenuAnimations";
as[17] = "disableTheming";
as[18] = "disableWallpaper";
as[19] = "enableDiskRedirection";
as[20] = "enableClipboardRedirection";
as[21] = "securityLayerOption";
SQLiteDatabase sqlitedatabase1 = sqlitedatabase;
String s2 = "servers";
String as1[] = as;
String s3 = null;
String as2[] = null;
String s4 = null;
String s5 = null;
String s6 = null;
cursor = sqlitedatabase1.query(s2, as1, s3, as2, s4, s5, s6);
Cursor cursor1 = cursor;
ArrayList arraylist;
sqlitedatabase = cursor1.getCount();
arraylist = new ArrayList();
if(sqlitedatabase <= 0) goto _L2; else goto _L1
_L1:
int i;
boolean flag = cursor1.moveToFirst();
i = 0;
_L22:
int j;
int k;
j = i;
k = sqlitedatabase;
if(j < k) goto _L3; else goto _L2
_L2:
cursor1.close();
ArrayList arraylist1;
arraylist1 = arraylist;
Cursor cursor2 = cursor1;
_L33:
ByHostThenUserNameComparator byhostthenusernamecomparator = mByHostThenUserNameComparator;
ArrayList arraylist2 = arraylist1;
ByHostThenUserNameComparator byhostthenusernamecomparator1 = byhostthenusernamecomparator;
Collections.sort(arraylist2, byhostthenusernamecomparator1);
return arraylist1;
_L3:
String s;
String s1;
Server server;
long l1;
String s7;
String s8;
int j1;
String s9;
int k1;
int i2;
int j2;
Cursor cursor13;
byte byte8;
server = JVM INSTR new #2 <Class Server>;
Cursor cursor3 = cursor1;
int l = 0;
l1 = cursor3.getLong(l);
Cursor cursor4 = cursor1;
int i1 = 1;
s7 = cursor4.getString(i1);
Cursor cursor5 = cursor1;
byte byte0 = 2;
s8 = cursor5.getString(byte0);
Cursor cursor6 = cursor1;
byte byte1 = 3;
j1 = cursor6.getInt(byte1);
Cursor cursor7 = cursor1;
byte byte2 = 4;
s9 = cursor7.getString(byte2);
Cursor cursor8 = cursor1;
byte byte3 = 5;
s = cursor8.getString(byte3);
Cursor cursor9 = cursor1;
byte byte4 = 6;
s1 = cursor9.getString(byte4);
Cursor cursor10 = cursor1;
byte byte5 = 7;
k1 = cursor10.getInt(byte5);
Cursor cursor11 = cursor1;
byte byte6 = 8;
i2 = cursor11.getInt(byte6);
Cursor cursor12 = cursor1;
byte byte7 = 9;
j2 = cursor12.getInt(byte7);
cursor13 = cursor1;
byte8 = 10;
if(cursor13.getInt(byte8) == 0) goto _L5; else goto _L4
_L4:
boolean flag1 = true;
_L23:
int k2;
Cursor cursor15;
byte byte10;
Cursor cursor14 = cursor1;
byte byte9 = 11;
k2 = cursor14.getInt(byte9);
cursor15 = cursor1;
byte10 = 12;
if(cursor15.getInt(byte10) == 0) goto _L7; else goto _L6
_L6:
boolean flag2 = true;
_L24:
Cursor cursor16;
byte byte11;
cursor16 = cursor1;
byte11 = 13;
if(cursor16.getInt(byte11) == 0) goto _L9; else goto _L8
_L8:
boolean flag3 = true;
_L25:
Cursor cursor17;
byte byte12;
cursor17 = cursor1;
byte12 = 14;
if(cursor17.getInt(byte12) == 0) goto _L11; else goto _L10
_L10:
boolean flag4 = true;
_L26:
Cursor cursor18;
byte byte13;
cursor18 = cursor1;
byte13 = 15;
if(cursor18.getInt(byte13) == 0) goto _L13; else goto _L12
_L12:
boolean flag5 = true;
_L27:
Cursor cursor19;
byte byte14;
cursor19 = cursor1;
byte14 = 16;
if(cursor19.getInt(byte14) == 0) goto _L15; else goto _L14
_L14:
boolean flag6 = true;
_L28:
Cursor cursor20;
byte byte15;
cursor20 = cursor1;
byte15 = 17;
if(cursor20.getInt(byte15) == 0) goto _L17; else goto _L16
_L16:
boolean flag7 = true;
_L29:
Cursor cursor21;
byte byte16;
cursor21 = cursor1;
byte16 = 18;
if(cursor21.getInt(byte16) == 0) goto _L19; else goto _L18
_L18:
boolean flag8 = true;
_L30:
Cursor cursor22;
byte byte17;
cursor22 = cursor1;
byte17 = 19;
if(cursor22.getInt(byte17) == 0) goto _L21; else goto _L20
_L20:
boolean flag9 = true;
_L31:
boolean flag10;
Cursor cursor23 = cursor1;
byte byte18 = 20;
if(cursor23.getInt(byte18) == 0)
break MISSING_BLOCK_LABEL_862;
flag10 = true;
_L32:
Cursor cursor24 = cursor1;
byte byte19 = 21;
int l2 = cursor24.getInt(byte19);
server.Server(l1, s7, s8, j1, s9, s, s1, k1, i2, j2, flag1, k2, flag2, flag3, flag4, flag5, flag6, flag7, flag8, flag9, flag10, l2);
ArrayList arraylist4 = arraylist;
Server server1 = server;
boolean flag11 = arraylist4.add(server1);
boolean flag12 = cursor1.moveToNext();
i++;
goto _L22
_L5:
flag1 = false;
goto _L23
_L7:
flag2 = false;
goto _L24
_L9:
flag3 = false;
goto _L25
_L11:
flag4 = false;
goto _L26
_L13:
flag5 = false;
goto _L27
_L15:
flag6 = false;
goto _L28
_L17:
flag7 = false;
goto _L29
_L19:
flag8 = false;
goto _L30
_L21:
flag9 = false;
goto _L31
flag10 = false;
goto _L32
SQLException sqlexception;
sqlexception;
ArrayList arraylist3;
arraylist3 = null;
boolean flag13 = false;
_L34:
String s10 = sqlexception.toString();
int i3 = Log.e("XtralogicRDPClient", s10);
arraylist1 = arraylist3;
goto _L33
sqlexception;
arraylist3 = null;
Cursor cursor25 = cursor1;
goto _L34
sqlexception;
arraylist3 = arraylist;
Cursor cursor26 = cursor1;
goto _L34
}
...全文
176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqhrs232 2012-04-17
  • 打赏
  • 举报
回复
应该差不多按汇编语言来理解,来重新组织你的JAVA代码
编程自留地 2012-04-17
  • 打赏
  • 举报
回复
再给点建设性的想法吧,我已经改了一大部分,但是就是运行不过,不知道怎么办了[Quote=引用楼主 的回复:]
请问下面这个方法怎么还原成正常代码?
public static ArrayList getServers(SQLiteDatabase sqlitedatabase)
{
Object obj = null;
Object obj1 = null;
Cursor cursor;
String as[] = new……
[/Quote]
编程自留地 2012-04-17
  • 打赏
  • 举报
回复
只要功能上能通过就行啊,再给点建议吧,我已经改了一部分,但是怎么都没法运行。
dinjay 2012-04-17
  • 打赏
  • 举报
回复
就是一个数据库查询语句吧,很好还原,
cursor = sqlitedatabase1.query("servers", as, null, null, null, null, null);
然后根据cursor遍历查询信息。
没法还原成一模一样的原始代码的。已经混淆了。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧