java下载更改目标_Java 目标文件的修改
以前一直在win32匯編里打滾,對于修改一個exe文件是件很容易的事情,但到了java下發(fā)現(xiàn)想修改一個
沒源碼的.class文件還真是個問題,上網(wǎng)看了一大堆資料,有ASM和Javassist可以做這事情,ASM看上去
很專業(yè),但看了文檔好象要在op code的級別下寫代碼,頭暈。Javassist簡單些,看完幾個sample心里基本
有數(shù)了,隨手找來一個有日期限制的Taglib,關(guān)鍵的代碼猜都不用猜在License.class里,反編譯后:
public static LicDate d()
{
String s = Dec("^%$&^%&*%&");
return new LicDate.newInstance(Dec("%&&(*(&$%%"), s);
}
s里放著用Dec解碼的日期,自己寫個小程序:
import javassist.*;
public class Crack {
public static void main(String args[])
{
try
{
ClassPool pool = ClassPool.getDefault();
pool.insertClassPath("./taglib");
CtClass License = pool.get("License");
CtMethod a = License.getDeclaredMethod("d");
a.insertBefore("{return LicDate.newInstance(\"MM-dd-yyyy HH:mm:ss\",\"21-30-2088 01:01:01\");}"
License.writeFile();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
反編譯新的License.class發(fā)現(xiàn)文件改好了。
總結(jié)
以上是生活随笔為你收集整理的java下载更改目标_Java 目标文件的修改的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 禁止安装未知应用权限在哪里设置(如何设置
- 下一篇: java 中覆 写tostring_如何