Open hotcatteam opened 5 years ago
没太明白你的问题 你说下你要达到什么目标 遇到了什么问题
修改XLauncher(最直接、最笨的办法)
public class XLauncher implements XConstants { public final String[] args; public final XDecryptor xDecryptor; public final XEncryptor xEncryptor; public final XKey xKey; public XLauncher(String... args) throws Exception { this.args = args; String algorithm = DEFAULT_ALGORITHM; int keysize = DEFAULT_KEYSIZE; int ivsize = DEFAULT_IVSIZE; **String password = "xxxxxxxxxxxxxxxx";** String keypath = null; ... ...
使用命令运行jar的时候,不报错,但不会加载jar包,直接结束了。 `D:\workspace>java -agentlib:xjar -jar xxx-encrypted.jar (命令行下无任何信息) D:\workspace>
修改XLauncher(最直接、最笨的办法)
public class XLauncher implements XConstants { public final String[] args; public final XDecryptor xDecryptor; public final XEncryptor xEncryptor; public final XKey xKey; public XLauncher(String... args) throws Exception { this.args = args; String algorithm = DEFAULT_ALGORITHM; int keysize = DEFAULT_KEYSIZE; int ivsize = DEFAULT_IVSIZE; **String password = "xxxxxxxxxxxxxxxx";** String keypath = null; ... ...
使用命令运行jar的时候,不报错,但不会加载jar包,直接结束了。 `D:\workspace>java -agentlib:xjar -jar xxx-encrypted.jar (命令行下无任何信息) D:\workspace>
OK.
C++ 解密部分代码
//解密 mbedtls_aes_crypt_ecb( &aes_ctx, MBEDTLS_AES_DECRYPT, input, outout ); if (b == 381) { // 分块后剩余字节数 memcpy(&dest[6096], outout, **9**); } else { memcpy(&dest[b * 16], outout, 16); } b++;
分块数目和输出字节需要根据生成的数据大小重新计算。本人获取得大小为6672 .b=417
if (b == 417) { // 分块后剩余字节数 memcpy(&dest[6672], outout, 0); }
成功运行
你对C++编译方面了解吗 我目前卡在这里
通过JVMTI来加密 XLauncher,但VMTI 只对类是由系统类加载器才能找到对应的类,而XLauncher 不是由系统加载器加载的,请问您是如何解决这个问题。