作者
xiangya
我很高興向大家知會一聲
scioworks Camino的基於Struts的Web Application開發工具已經可以破解了
因為Struts不錯
我才想這樣
目的只有一個
用來測試檢驗Struts
這個工具使用注冊碼
並使用注冊碼進行日期判斷
讓我有點惱火的是
程序會想一個地址發送UDP包
不管怎樣
我不希望這樣的事情發生
我想這個工具的破解有兩種方式
認真鑽研其算法
然後給出一個KeyGen程序
這種方式對程序本身不會有什麼影響
但是研讀算法比較費時間
改寫程序控制
然後給出一個替代的class文件
這種方式因為改寫了程序控制流程
需要特別小心
不小心的話
原來的程序就會崩潰
這兩種方式各有千秋
取決於你的興趣所在
因為這個工具經過了代碼優化以及別的處理
所以
改寫代碼稍嫌麻煩
要做改寫代碼方式破解的話
你需要一個反編譯工具
我推薦你使用jshrink
因為jad好像已經不再做下去了
(別說你還有好多反編譯工具
錯
大多使用jad Engine
)其次你需要了解一點java虛擬機規范
沒有也行
那麼你需要熟悉java語言
或者加上一些windows匯編語言知識
我沒有更多耐心所更多的東西
給出源代碼
你愛誰誰去
// Main
java; class file size
bytes
package scioworks
camino;
/*
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 com
jxml
quick
QDoc;
import scioworks
camino
event
ProjectReadyEvent;
import scioworks
camino
gui
LcPanel;
import scioworks
camino
io
DirtyStatusLookup;
import java
awt
Color;
import java
awt
Frame;
import java
io
File;
import java
io
IOException;
import java
text
MessageFormat;
import java
util
ArrayList;
import java
util
Collection;
import java
util
HashMap;
import java
util
Iterator;
import java
util
List;
import java
util
Map;
import java
util
NoSuchElementException;
import java
util
Set;
import java
util
StringTokenizer;
import java
util
TreeMap;
import javax
swing
JOptionPane;
import scioworks
camino
prjModel
CaminoProject;
import scioworks
camino
prjModel
SubApp;
import scioworks
aspen
BaseDialog;
import scioworks
aspen
HelpManager;
import scioworks
aspen
SwingUtil;
import scioworks
aspen
progress
ProgressListener;
import mon
io
FileUtil;
import mon
io
filemonitor
FileMonitor;
import mon
logging
Logger;
import mon
logging
LoggerFactory;
import ssage
Message;
import ssage
MessageCategory;
import scioworks
util
crypto
TransformerRev;
import scioworks
camino
strutsModel
Action;
import scioworks
camino
strutsModel
StrutsConfig;
import scioworks
camino
webdd
Servlet;
import scioworks
camino
webdd
ServletMapping;
import scioworks
camino
webdd
WebApp;
import java
io
IOException;
import
DatagramPacket;
import
DatagramSocket;
import
InetAddress;
import
MulticastSocket;
import
InetAddress;
class Main
implements
CaminoModel
{
final static private String _$
=
VGhlIGxpY
Vuc
UgaW
mb
JtYXRpb
gaXMgaW
YWxpZA==
;
final static private String _$
=
Q
FtaW
vIExpY
Vuc
UgSW
mbw==
;
final static private String _$
=
VHJpYWwgbGljZW
zZSBleHBpcmVzIGluIHswfSBkYXlz
;
final static private String _$
=
WW
ciB
cmlhbCBsaWNlbnNlIGhhcyBleHBpcmVkLiBWaXNpdCBodHRwOi
vd
d
LnNjaW
b
Jrcy
jb
gdG
gcHVyY
hhc
UgYSBsaWNlbnNlZCBjb
B
IG
mIFNjaW
b
JrcyBDYW
pbm
=
;
final static private String _$
=
VW
yZWdpc
RlcmVkIFRyaWFsIENvcHk=
;
final static private String _$
=
usitPzelhkTNlTcaSpAIIiuaalidM
;
final static private String _$
=
U
RhbmRhcmQ=
;
final static private String _$
=
RW
ZXJwcmlzZQ==
;
static private mon
logging
Logger _$
= mon
logging
LoggerFactory
getLogger(Main
class);
// mon
logging
LoggerFactory
getLogger((class$scioworks$camino$Main == null) ? (class$scioworks$camino$Main = Main
class$(
scioworks
camino
Main
)) : 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 java
util
Map _$
;
public Main() throws InvalidResourceException {
_$
=
;
_$
=
;
//_$
= null;
//_$
= null;
_$
=
;
_$
=
;
_$
=
;
_$
=
;
_$
=
;
_$
= null;
_$
= null;
_$
= new java
util
TreeMap();
getLc(javax
swing
JOptionPane
getRootFrame()
true);
_$(
License Count = ncat(String
valueOf(_$
)));
_$(
Serial Number = ncat(_$
));
_$
= _$
();
//_$
();
BindingSchemaLoader
getProjectBindingSchema();
BindingSchemaLoader
getStrutsConfigBindingSchema();
BindingSchemaLoader
getWebDDBindingSchema();
scioworks
aspen
HelpManager
instance();
}
public java
util
List findGlobalForwardsByTarget(Navigatable n
) {
ArrayList a
;
Iterator i
;
StrutsSubApp s
;
List l
;
a
= new java
util
ArrayList();
i
= _$
values(erator();
while (i
hasNext()) {
s
= (StrutsSubApp) i
next();
l
= s
getStrutsConfig()
findGlobalForwardsByTarget(n
);
a
addAll(l
);
}
return a
;
}
public Navigatable findNavigatable(String s
) {
Iterator i
;
StrutsSubApp s
= null;
i
= _$
values(erator();
{
do {
if (i
hasNext()) {
s
= (StrutsSubApp) i
next();
}
}
while (s
isInSubApp(s
) == false);
return s
findSubAppNavigatable(s
makeSubAppRelative(s
));
}
//return null;
}
public Action findAction(String s
) {
Iterator i
;
StrutsSubApp s
= null;
i
= _$
values(erator();
{
do {
if (i
hasNext()) {
s
= (StrutsSubApp) i
next();
}
}
while (s
isInSubApp(s
) == false);
return s
findSubAppAction(ContextPathUtil
makeSubAppRelative(s
getPrefix()
s
));
}
//return null;
}
public CaminoProject getProject() {
return _$
;
}
public WebApp getWebApp() {
return _$
;
}
public StrutsSubApp getSubApp(String s
) {
return (StrutsSubApp) _$
get(s
);
}
public java
util
Set getSubAppPrefixes() {
return _$
keySet();
}
java
util
Map getAllSubApps() {
return _$
;
}
public void initNewProject(CaminoProject c
scioworks
aspen
progress
ProgressListener p
) throws InvalidResourceEx
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28370.html