下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、javaclass利用jad反编译之后,偶尔回碰到一些不正常的代码,例如:labelO:丄1MISSING_BLOCK_LABEL_30、JVMINSTRret7、JVMINSTRtableswitch13:default269、JVMINSTRmonitorexit、JVMINSTRmonitorenter,这些一般是由特殊的for循环、trycatchfinally语句块、synchronized语句反编译后产生的。下面,就简单介绍一下,一些反编译后的特殊代码的还原规则。异常下面的代码前提是类中有如下属性,Calendarcal=Calendar.getInstance();1、Excep
2、tioin的还原反编译后的代码如下:publicbooleanf1()returncal.getTime().after(newDate();Exceptione;e;e.printStackTrace();returnfalse;还原后的Java代码publicbooleanf1()tryreturncal.getTime().after(newDate();catch(Exceptione)e.printStackTrace();returnfalse;2、finally代码的还原反编译后的Java代码如下:publicbooleanf2()booleanflag=cal.getTime(
3、).after(newDate();System.out.println(finally);returnflag;Exceptione;e;e.printStackTrace();System.out.println(finally);returnfalse;Exceptionexception;exception;System.out.println(finally);throwexception;还原后的代码如下:publicbooleanf2()tryreturncal.getTime().after(newDate();catch(Exceptione)e.printStackTrac
4、e();returnfalse;finallySystem.out.println(finally);3、MISSING_BLOCK_LABEL_的还原反编译后的代码publicObjectf22()Datedate=cal.getTime();System.out.println(finally);returndate;Exceptione;e;e.printStackTrace();System.out.println(finally);breakMISSING_BLOCK_LABEL_45;Exceptionexception;exception;System.out.println(f
5、inally);throwexception;returnnull;还原后的Java代码publicObjectf22()tryreturncal.getTime();catch(Exceptione)e.printStackTrace();finallySystem.out.println(finally);returnnull;4、异常中:label的还原反编译后的代码publicStringf4()throwsExceptionlabelO:tryIntegeri=newInteger(1);if(Value()O)System.out.println(i);breaklabelO;Sy
6、stem.err.println(i);catch(Exceptiondae)System.err.println(dae);thrownewRuntimeException(dae);returnnull;returnHello;注意,这个代码有点诡异,实际代码如下:publicStringf4()throwsExceptiontryIntegeri=newInteger(1);if(Value()O)System.out.println(i);elseSystem.err.println(i);returnnull;returnHello;catch(Exceptiondae)System
7、.err.println(dae);thrownewRuntimeException(dae);5、典型数据库操作代码还原反编译后代码publicHashMapf5()Connectionconn=null;HashMaphashmap;HashMapmap=newHashMap();Class.forName();conn=DriverManager.getConnection(jdbc:odbc:);PreparedStatementpstmt=conn.prepareStatement(select*fromtable);pstmt.setString(1,param);Stringco
8、lumnVallue;for(ResultSetrs=pstmt.executeQuery();rs.next();map.put(columnVallue,)columnVallue=rs.getString(column);hashmap=map;if(conn!=null)tryconn.close();catch(SQLExceptionsqlce)sqlce.printStackTrace();returnhashmap;ClassNotFoundExceptioncnfe;cnfe;cnfe.printStackTrace();if(conn!=null)tryconn.close
9、();catch(SQLExceptionsqlce)sqlce.printStackTrace();breakMISSING_BLOCK_LABEL_188;SQLExceptionsqle;sqle;sqle.printStackTrace();if(conn!=null)tryconn.close();catch(SQLExceptionsqlce)sqlce.printStackTrace();breakMISSING_BLOCK_LABEL_188;Exceptionexception;exception;if(conn!=null)tryconn.close();catch(SQL
10、Exceptionsqlce)sqlce.printStackTrace();throwexception;returnnull;实际代码如下:publicHashMapf5()Connectionconn=null;tryHashMapmap=newHashMap();Class.forName();conn=DriverManager.getConnection(jdbc:odbc:);PreparedStatementpstmt=conn.prepareStatement(select*fromtable);pstmt.setString(1,param);ResultSetrs=pst
11、mt.executeQuery();while(rs.next()StringcolumnVallue=rs.getString(column);map.put(columnVallue,);returnmap;catch(ClassNotFoundExceptioncnfe)cnfe.printStackTrace();catch(SQLExceptionsqle)sqle.printStackTrace();finallyif(conn!=null)tryconn.close();catch(SQLExceptionsqlce)sqlce.printStackTrace();returnn
12、ull;6、两层异常嵌套代码还原反编译后的代码publicintf6()inti=cal.getTime().compareTo(newDate();System.out.println(finally);returni;Exceptione1;e1;e1.printStackTrace();System.out.println(finally);return-1;Exceptione2;e2;e2.printStackTrace();System.out.println(finally);return-2;Exceptionexception;exception;System.out.pri
13、ntln(finally);throwexception;实际代码publicintf6()trytryreturncal.getTime().compareTo(newDate();catch(Exceptione1)e1.printStackTrace();return-1;catch(Exceptione2)e2.printStackTrace();return-2;finallySystem.out.println(finally);7、非常诡异的代码反编译后的代码publicintf7()inti=cal.getTime().compareTo(newDate();System.out.println(finally);returni;Exceptione1;e1;e1.printStackTrace();_L2:System.out.println(finally);return-1;Exceptione2;e2;e2.printStackTrace();if(true)goto_L2;elsegoto_L1_L1:Exceptionexception;exception;System.out.println(fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年合同欺诈责任认定
- 本科锅炉课程设计
- 2024年企业品牌营销策划合同
- 2024年企业信息化系统实施服务合同
- 2024年 edition 环保设备生产与销售合同
- 佳木斯大学《运动生理学》2021-2022学年第一学期期末试卷
- 混凝土地面硬化合同(2篇)
- 加工承揽劳务外包合同模板
- 培训拓展合同模板
- 2024年云计算服务提供合同 including SLAs
- 小学三年级趣味数学教学课件
- 新能源汽车充电桩专属安装竣工验收单模板
- ISO全套制度及业务流程之销售过程管理程序
- 区块链技术及应用PPT完整全套教学课件
- 2022-2023学年甘肃省白银市统招专升本计算机历年真题汇总及答案
- 部编道德与法治三年级下册第8课大家的朋友说课课件
- 【知识解析】五次国际产业转移
- 微观经济学(浙江大学)知到章节答案智慧树2023年
- 建筑学专业知识考试参考题库(300题)
- 高级烟叶制丝操作工理论考试复习题库大全-1单选题汇总
- API520-安全阀计算PART1(中文版)
评论
0/150
提交评论