Cracking Java bytecode can be easily decompile you know, this afternoon I got a good J
Builder Opentools (Yesterday 1.0 released, freshly baked!) But only for 14 days, how can this be done ~@@#!@#
!#@!@#%%^@, it takes 140 days to say less! ), so I did not hesitate to put aside other work, studied a software encryption
Methods of cracking and counter-cracking, combined with some of the previous experience, the composition of a share, not to encourage everyone.
.
The way to crack:
Today, there are many Java Obfuscator (which can be listed in Google classification), and the famous 4thpass
Products (hehe, fat friends!) Kbrowser all used it), no money can be used Jode (Jode is OBFUSC
Ator is also Decompiler, also provides the source program, recommended for beginners to use, generally speaking, code-disrupting work of the original
There are three kinds of reasons, the initial level of such as JBuilder (by default, the function is closed), can change the private
The names of quantities and methods are replaced with garbled characters; a little more advanced can make the public variables and methods can be replaced by garbled, pass
Often enter the jar and a script you want to disturb (to control the retention part, or your main program will not execute)
, some do not use garbled instead of variable name, but directly with Java keyword, the reader may be puzzled, in fact
This tool bypasses the Java compiler's limitations by entering class or jar (not the source program), disrupting the output cl
Ass or jars, of course, the JVM is still able to execute! If you use the normal method, these class files cannot be decompile
Modified to be compiled with Javac or jikes, the solution is to compile it with the decompile software (all illegal variables
prefix), and then dots the same disturbance to generate the modified class file to achieve the goal;
The point is not to use the conventional method, some are for the market on the emergence of decompile software to do some traps, so that these reverse
Compiling software does not work; another is to do a Java compiler yourself (JDK also has a Java implementation of the compilation
, in accordance with the premise of the JVM code to compile, generally used in applets, so that the general decompile software
Can not be explained. At the moment I can only engage in medium-disturbance procedures.
The most famous counter compiler has jad1.58e is written in C + +, the front desk also has a Delphi interface. With it can quickly
Compile, I wrote a Perl applet that can compile thousands of classes in batches.
For software that provides license.key (encrypted files that contain authorization information), this file typically uses DES
, RAS and CRC checksums are generally binary (even if sometimes output to BASE64 encoding), directly modifying the file is a wave
Time, you can first decompile through the reading source program to explore the decryption process, if the process is reversible, then
You implement an encryption process yourself, you can easily generate your own desired license key, if the process is not
The inverse is not going to make it, some of the intensity of the encryption algorithm can still use brute force to solve the law, there is a
The case is to encrypt the digital (generally refers to the expiration time) If you can modify this expiration time then you can use more
For a moment, describe in a mathematical way:
Suppose set X is a set of elements contained in clear text, and Y is the mapping of the algorithm after X, containing the ciphertext element, if
There are two algorithms A and b that enable the {y-a-> X} = {y-b-> x},a algorithm to be reversible, but the B algorithm is not
Reversible, the producer uses a inverse algorithm to encrypt the authorization information (x:string) to (y:byte[]) and use B in the software
The algorithm decrypts it so you don't get it, but if the elements of the set X are finite, suppose only 0-9 (new Dat
E (). GetTime (), then algorithm B is called irreversible but unreliable, because you pass a sample (a
will give you the evaluation version of the license! Can be used to get the inverse mappings of elements in the x set in some Y-sets.
, so you can use this map directly to modify the license ...
The way to counter crack:
If it is to do a product or provide a demo program, encryption is still good, encrypted software can use the above mentioned Jode
, it is generally disturbing the compiled class file, because not all symbols need to be disturbed if you
Development is a class library, or some classes need dynamic loading, those public APIs must keep the symbol unchanged, so
Others can use your class library. Write the script to configure the symbolic names that need to be preserved, and some of the disturbances
The ability to adjust the order of bytecode makes it more difficult to decompile. If you're using a code-disrupting device that makes it impossible for others to pass,
Decompile to modify or replace your class, you should also be careful not to use unreliable encryption algorithms. I'll write it myself.
An irreversible and reliable algorithm, is applying for a patent ....
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.