作者xiangya
我很高兴向大家知会一声scioworks Camino的基于Struts的Web Application开发工具已经可以破解了因为Struts不错我才想这样目的只有一个用来测试检验Struts
这个工具使用注册码并使用注册码进行日期判断让我有点恼火的是程序会想一个地址发送UDP包不管怎样我不希望这样的事情发生
我想这个工具的破解有两种方式
认真钻研其算法然后给出一个KeyGen程序这种方式对程序本身不会有什么影响但是研读算法比较费时间
改写程序控制然后给出一个替代的class文件这种方式因为改写了程序控制流程需要特别小心不小心的话原来的程序就会崩溃
这两种方式各有千秋取决于你的兴趣所在因为这个工具经过了代码优化以及别的处理所以改写代码稍嫌麻烦
要做改写代码方式破解的话你需要一个反编译工具我推荐你使用jshrink因为jad好像已经不再做下去了(别说你还有好多反编译工具错大多使用jad Engine)其次你需要了解一点java虚拟机规范没有也行那么你需要熟悉java语言或者加上一些windows汇编语言知识
我没有更多耐心所更多的东西给出源代码你爱谁谁去
// Mainjava; class file size bytes
package scioworkscamino;
/*
import BindingSchemaLoader;
import CaminoApp;
import CaminoModel;
import Config;
import ContextPathUtil;
import ExpressException;
import FileReadWriteException;
import InvalidResourceException;
import Main$CMon;
import Main$SMon;
import Navigatable;
import ParseException;
import StrutsSubApp;
*/
import comjxmlquickQDoc;
import scioworkscaminoeventProjectReadyEvent;
import scioworkscaminoguiLcPanel;
import scioworkscaminoioDirtyStatusLookup;
import javaawtColor;
import javaawtFrame;
import javaioFile;
import javaioIOException;
import javatextMessageFormat;
import javautilArrayList;
import javautilCollection;
import javautilHashMap;
import javautilIterator;
import javautilList;
import javautilMap;
import javautilNoSuchElementException;
import javautilSet;
import javautilStringTokenizer;
import javautilTreeMap;
import javaxswingJOptionPane;
import scioworkscaminoprjModelCaminoProject;
import scioworkscaminoprjModelSubApp;
import scioworksaspenBaseDialog;
import scioworksaspenHelpManager;
import scioworksaspenSwingUtil;
import scioworksaspenprogressProgressListener;
import monioFileUtil;
import moniofilemonitorFileMonitor;
import monloggingLogger;
import monloggingLoggerFactory;
import ssageMessage;
import ssageMessageCategory;
import scioworksutilcryptoTransformerRev;
import scioworkscaminostrutsModelAction;
import scioworkscaminostrutsModelStrutsConfig;
import scioworkscaminowebddServlet;
import scioworkscaminowebddServletMapping;
import scioworkscaminowebddWebApp;
import javaioIOException;
import DatagramPacket;
import DatagramSocket;
import InetAddress;
import MulticastSocket;
import InetAddress;
class Main
implements
CaminoModel
{
final static private String _$ = VGhlIGxpYVucUgaWmbJtYXRpbgaXMgaWYWxpZA==;
final static private String _$ = QFtaWvIExpYVucUgSWmbw==;
final static private String _$ = VHJpYWwgbGljZWzZSBleHBpcmVzIGluIHswfSBkYXlz;
final static private String _$ = WWciBcmlhbCBsaWNlbnNlIGhhcyBleHBpcmVkLiBWaXNpdCBodHRwOivddLnNjaWbJrcyjbgdGgcHVyYhhcUgYSBsaWNlbnNlZCBjbBIGmIFNjaWbJrcyBDYWpbm=;
final static private String _$ = VWyZWdpcRlcmVkIFRyaWFsIENvcHk=;
final static private String _$ = usitPzelhkTNlTcaSpAIIiuaalidM;
final static private String _$ = URhbmRhcmQ=;
final static private String _$ = RWZXJwcmlzZQ==;
static private monloggingLogger _$ = monloggingLoggerFactorygetLogger(Mainclass);
// monloggingLoggerFactorygetLogger((class$scioworks$camino$Main == null) ? (class$scioworks$camino$Main = Mainclass$(scioworkscaminoMain)) : class$scioworks$camino$Main);
private int _$;
private String _$;
//private Main$CMon _$;
//private Main$SMon _$;
private int _$;
private String _$;
private long _$;
private String _$;
private String _$;
private CaminoProject _$;
private WebApp _$;
private javautilMap _$;
public Main() throws InvalidResourceException {
_$ = ;
_$ = ;
//_$ = null;
//_$ = null;
_$ = ;
_$ = ;
_$ = ;
_$ = ;
_$ = ;
_$ = null;
_$ = null;
_$ = new javautilTreeMap();
getLc(javaxswingJOptionPanegetRootFrame() true);
_$(License Count = ncat(StringvalueOf(_$)));
_$(Serial Number = ncat(_$));
_$ = _$();
//_$();
BindingSchemaLoadergetProjectBindingSchema();
BindingSchemaLoadergetStrutsConfigBindingSchema();
BindingSchemaLoadergetWebDDBindingSchema();
scioworksaspenHelpManagerinstance();
}
public javautilList findGlobalForwardsByTarget(Navigatable n) {
ArrayList a;
Iterator i;
StrutsSubApp s;
List l;
a = new javautilArrayList();
i = _$values(erator();
while (ihasNext()) {
s = (StrutsSubApp) inext();
l = sgetStrutsConfig()findGlobalForwardsByTarget(n);
aaddAll(l);
}
return a;
}
public Navigatable findNavigatable(String s) {
Iterator i;
StrutsSubApp s = null;
i = _$values(erator();
{
do {
if (ihasNext()) {
s = (StrutsSubApp) inext();
}
}
while (sisInSubApp(s) == false);
return sfindSubAppNavigatable(smakeSubAppRelative(s));
}
//return null;
}
public Action findAction(String s) {
Iterator i;
StrutsSubApp s = null;
i = _$values(erator();
{
do {
if (ihasNext()) {
s = (StrutsSubApp) inext();
}
}
while (sisInSubApp(s) == false);
return sfindSubAppAction(ContextPathUtilmakeSubAppRelative(sgetPrefix() s));
}
//return null;
}
public CaminoProject getProject() {
return _$;
}
public WebApp getWebApp() {
return _$;
}
public StrutsSubApp getSubApp(String s) {
return (StrutsSubApp) _$get(s);
}
public javautilSet getSubAppPrefixes() {
return _$keySet();
}
javautilMap getAllSubApps() {
return _$;
}
public void initNewProject(CaminoProject c scioworksaspenprogressProgressListener p) throws InvalidResourceEx