如何加密jar里的资源!!

云客张志强 2005-03-05 11:07:11
请高手指点
如何加密jar里的资源图片、声音等。效果就像混淆源代码一样。只要让别人解开jar看不到资源图片就行了。我看过别人的效果。有把后缀名变成bin的也有干脆就没扩展名的。不知道是怎样实现的。有人能告诉我吗?不胜感激!!!!!!!!!!
本人MSN:zzq130@163.com(j2me游戏开发专用MSN)
QQ:277359993。
...全文
989 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdwer 2005-07-28
  • 打赏
  • 举报
回复
楼上的朋友,啥工具能把图片转为。class,or java???能告诉个名字么?或者给我传份◎谢谢
zizhu666-748@sohu.com
homesos 2005-07-25
  • 打赏
  • 举报
回复
回复人: shiyonggang(最熟悉的陌生人http://www.j2me.com.cn) ( ) 信誉:100 2005-07-23 09:13:00 得分: 0
homesos(熊猫贩子) 我贴的代码咋被你转贴到这里了?????????????

呵,这段代码是收集的,不知是从哪里来的,不好意思哦,抱歉抱歉!!!
YuLimin 2005-07-24
  • 打赏
  • 举报
回复
有个工具,专门把图片文件转换成.class文件,也可以转成java文件,然后再进行混淆吧,这样应当好些了:)
不过道高一尺魔高N丈:)
shiyonggang 2005-07-23
  • 打赏
  • 举报
回复
homesos(熊猫贩子) 我贴的代码咋被你转贴到这里了?????????????
humanity 2005-07-22
  • 打赏
  • 举报
回复
用自己写的工具对不同扩展名批量改名并进行简单的格式混淆, 然后,
用自己写的工具 URL + URLConnection 实现自己加载(识别格式和混淆),
好像要配置 URL 工厂类的 SPI ,
你看看 Sun 怎么配的 JarURLConnection .模仿它。
delphiseabird 2005-07-22
  • 打赏
  • 举报
回复
自己写个工具吧,读入到一个文件中,然后在游戏中读出来

www.coderpub.com
cnyxlxw 2005-07-22
  • 打赏
  • 举报
回复
mark mark!!
homesos 2005-07-22
  • 打赏
  • 举报
回复
import java.io.DataInputStream;
import java.io.IOException;
import javax.microedition.lcdui.Image;

public class loadImage {
private byte w;
byte[] b;
Image t;
private static final byte a[] = {
0, 0, 0, 0, 73, 69, 78, 68, -82, 66,
96, -126
};
private static final byte c[] = {
-119, 80, 78, 71, 13, 10, 26, 10, 0, 0,
0, 13, 73, 72, 68, 82, 0, 0, 0, 30,
0, 0, 0, 16, 8, 3, 0, 0, 0
};

public loadImage(DataInputStream datainputstream, int i) {
w = (byte)i;
try {
b = a(datainputstream);
} catch (IOException ex) {
}
}

public Image getImage(byte p) throws Exception {
byte abyte0[] = a(p);
for (int w = 0; w < abyte0.length; w++) {
System.out.println(abyte0[w]);
}
return Image.createImage(abyte0, 0, abyte0.length);
}
private final byte[] a(byte byte0)
throws Exception
{
int i = (b[12 * b[0] + 1] << 8) + (b[12 * b[0] + 2] & 0xff);
int j = (b[12 * byte0 + 5] << 8) + (b[12 * byte0 + 6] & 0xff);
byte abyte0[] = new byte[c.length + 4 + i + j + a.length];
System.arraycopy(c, 0, abyte0, 0, c.length);
System.arraycopy(b, 9 + 12 * byte0, abyte0, c.length, 4);
System.arraycopy(b, 12 * b[0] + 3, abyte0, c.length + 4, i);
System.arraycopy(b, (b[12 * byte0 + 3] << 8) + (b[12 * byte0 + 4] & 0xff), abyte0, c.length + 4 + i, j);
System.arraycopy(a, 0, abyte0, c.length + 4 + i + j, a.length);
abyte0[19] = b[1 + 12 * byte0];
abyte0[23] = b[2 + 12 * byte0];
return abyte0;
}


private static final byte[] a(DataInputStream datainputstream)
throws IOException
{
char c1 = '\u0400';
int i = c1;
byte abyte0[] = new byte[i];
int j = 0;
byte abyte1[] = null;
while((i = datainputstream.read(abyte0, j, abyte0.length - j)) != -1)
{
j += i;
if(j == abyte0.length)
{
abyte1 = new byte[abyte0.length + c1];
System.arraycopy(abyte0, 0, abyte1, 0, j);
abyte0 = null;
abyte0 = abyte1;
}
}
abyte1 = new byte[j];
System.arraycopy(abyte0, 0, abyte1, 0, j);
// for (int w = 0; w < abyte1.length; w++) {
// System.out.println(abyte1[w]);
// }
return abyte1;
}
}
xueyong1203 2005-07-22
  • 打赏
  • 举报
回复
真是太狠了
yufanzx 2005-07-22
  • 打赏
  • 举报
回复
不放文件在jar里 放文件的byte[]内容到代码里 然后使用混淆器
岳振 2005-07-12
  • 打赏
  • 举报
回复
打包
云客张志强 2005-07-07
  • 打赏
  • 举报
回复
:)
云客张志强 2005-07-04
  • 打赏
  • 举报
回复
谢谢了
prok 2005-03-07
  • 打赏
  • 举报
回复
最好把资源文件都读到一个文件里,然后自己用得时候再读出来.
goodnow 2005-03-05
  • 打赏
  • 举报
回复
把扩展名变成bin或者没扩展名的,很简单啊,用资源管理器就搞定了

然后在程序中读取图片是把
image_1 = Image.createImage("/monternet.png");
改成
image_1 = Image.createImage("/monternet");
就OK啦
cangwu_lee 2005-03-05
  • 打赏
  • 举报
回复
还有么
Megadeth 2005-03-05
  • 打赏
  • 举报
回复
跟pc游戏一样,打包,自定义一个文件格式,写一个打包工具,然后把所有资源打进去,打包的过程中可以进行简单的加密,比如字节取反之类的,然后在j2me程序里写一个函数来读,这样做还可以大幅缩减jar的大小。我曾经最多缩小了20k,从64k缩减到44k左右。

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧