java反编译出来的代码求解,解出后可追加50分 20

这段代码是APK反编译后的代码的某部分,很明显是被混淆过的,搞了很久都没有还原出来,大家帮看看怎么还原,代码如下:_L5:label0:{if(l<k/2)//for循环... 这段代码是APK反编译后的代码的某部分,很明显是被混淆过的,搞了很久都没有还原出来,大家帮看看怎么还原,代码如下:
_L5:
label0:
{
if(l < k / 2) //for循环的条件
break label0;
String s2 = stringbuffer.toString();
String s3 = s2.substring(0, i);
String s4;
if(i > 0)
s4 = (new StringBuilder(String.valueOf(s3))).append(".").append(s2.substring(i, s2.length() - j)).append(".").append(s2.substring(s2.length() - j)).toString();
else
s4 = (new StringBuilder(String.valueOf(s2.substring(i, s2.length() - j)))).append(".").append(s2.substring(s2.length() - j)).toString();
s1 = s4;
}
if(true) return s1; else goto _L3 //for循环的条件
_L3:
stringbuffer.append(s.substring(1 + l * 2, 2 + l * 2));
l++;
goto _L5

这其实就是一个被混淆后的for循环,但是我们怎么都欢迎不对。
给出一个别人还原的的例子,这是三个for循环的,相似度很大:

三个for循环
源码
  public void tt()
  {
   for (int i = 0; i <
array; i++) {
   for (int j = 0; j < array; j++) {
  
for (int k = 0; k < array;k++)
   {
  
System.out.print("xxx");
   }
   }
  
}
  }

反编译后
  public void tt()
  {
   int i =
null;
_L2:
   int k;
   int j = array;
   if (i >=
j)
   return;
   k = null;
_L3:
  label0:
  {
   int l =
array;
   if (k < l)
   break label0;
   i++;
  }
  if
(true) goto _L2; else goto _L1
_L1:
   int i1 =
null;
_L4:
  label1:
  {
   int j1 = array;
   if (i1 <
j1)
   break label1;
   k++;
  }
  goto
_L3
  System.out.print("xxx");
  i1++;
  goto _L4
 }
展开
 我来答
hanzhuhua
2012-08-09 · TA获得超过686个赞
知道小有建树答主
回答量:351
采纳率:85%
帮助的人:72.3万
展开全部
为什么不用Java Decompiler反编译呢?
不会出现这样的情况
唯一不足的就是反编译后原来的变量会变成数值
更多追问追答
追问
jd-gui更不可读啊

jd-gui,jode,jad都用了,最接近的就是现在这个了,jode反编译出来的和现在这个差不多,都是用的goto

jd-gui反编译出来都是label,而且用法都是错误的,label直接定义在变量声明前面,然后又break到另一个无关的label去
追答
用我说的这个试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
khiker
2012-08-09 · TA获得超过125个赞
知道答主
回答量:107
采纳率:0%
帮助的人:70.1万
展开全部
i哪俩的,代码贴全啊亲
追问
超长了哦亲,你可以把s4那段这样看的哦亲
String s4;
if(i > 0)
s4 = "abc";
else
s4 = "def";
s1 = s4;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式