如何弄清楚.class文件的作用?

时间:2014-04-25 21:27:16

标签: java linux postgresql tomcat reverse-engineering

我想弄清楚如何在一块硬件上重置电池的使用年限。在TomCat文件中,我找到了提取年龄的函数并呈现了html:

#macro (renderBatteries $batteryList)
#set ($smartBatteryData = $rack.getSmartBatteryData())
#foreach ($battery in $batteryList)
...
<td class="formlabel">Age:</td>
<td width="50%" class="formvalue">$!battery.getBatteryAge() Day(s)

所以我认为有趣的函数可以确定从rack.getSmartBatteryData()获取信息的位置?

如果我这样做,我会看到

~# grep -R 'getSmartBatteryData' /opt/*
/opt/smu/tomcat/webapps/mgr/templates/app/screens/storage/racks/RackMacros.vm:#set ($smartBatteryData = $rack.getSmartBatteryData())
Binary file /opt/smu/tomcat/webapps/mgr/WEB-INF/lib/SYMsdk.jar matches
Binary file /opt/smu/tomcat/webapps/mgr/WEB-INF/classes/com/bluearc/mgr/data/storageManagement/Rack.class matches
Binary file /opt/smu/tomcat/webapps/mgr/WEB-INF/classes/com/bluearc/mgr/services/storageManagement/LSI/LsiRackViewService.class matches
/opt/smu/apache-tomcat-6.0.29/webapps/mgr/templates/app/screens/storage/racks/RackMacros.vm:#set ($smartBatteryData = $rack.getSmartBatteryData())
Binary file /opt/smu/apache-tomcat-6.0.29/webapps/mgr/WEB-INF/lib/SYMsdk.jar matches
Binary file /opt/smu/apache-tomcat-6.0.29/webapps/mgr/WEB-INF/classes/com/bluearc/mgr/data/storageManagement/Rack.class matches
Binary file /opt/smu/apache-tomcat-6.0.29/webapps/mgr/WEB-INF/classes/com/bluearc/mgr/services/storageManagement/LSI/LsiRackViewService.class matches

我有一个可以完全访问的postgres数据库,我想电池时代存储在那里。

问题

是否可以对我发现的类进行反向工程以找出rack.getSmartBatteryData()的作用?

1 个答案:

答案 0 :(得分:3)

使用JD之类的反编译器,然后发送您想要/需要反编译的.class或.jar文件。但请注意,您可能无法获得生成这些文件的真实代码,只是它们的非常相似的表示。