A TROJAN FOR STEAL LOGS:
F E A T U R E S :
Concise API, it is easy to achieve diary record function through a few lines of code;Use the AOP technologies Lancet SDK, it is comfortable to collect common logs, also support incremental compile;
Use mmap technology to ensure the efficiency of log records;
Scalability, developers can customize the log file to achieve the purpose of the upload;
Small traffic overhead, remote control user log file upload or not by online configuration;
High stability, it is very stable at many apps.
πΈπ½π π π°π»π»πΈπ π°π πΈπΎπ½ & π π π½ :
DOWNLOAD https://github.com/eleme/Trojan
Add in the root directory's build.gradle:
buildscript {
dependencies {
......
classpath 'me.ele:lancet-plugin:1.0.2'
}
}
Add in the app directory's build.gradle:
apply plugin: 'me.ele.lancet'
dependencies {
......
provided 'me.ele:lancet-base:1.0.2'
compile 'me.ele:trojan-library:0.0.5'
}
Use
1) Initialization
Add in the custom Application:
TrojanConfig config = new TrojanConfig.Builder(this)
// Set user information
.userInfo("xxxx")
// Set device id
.deviceId("xxxx")
// Set cipher key if need encry log
.cipherKey("xxxx")
// Optional, save log file in sdcard by default
.logDir("xxxx")
// Console log switch, the default is open
.enableLog(true)
.build();
Trojan.init(config);
π¦Special Note:
The log files are stored in sdcard by default and will not be lost even if the application is uninstalled;
To be compatible with multiple processes, log files stored in their respective directories;
The log is not encrypted by default, we currently only provide TEA encryption in view for high efficiency。
2) Record the log
Trojan provides two ways to recode log:
Firstly:
Trojan.log("Trojan", "We have a nice day!");
Secondly:
List<String> msgList = new LinkedList <>();
msgList.add("Hello Trojan!");
msgList.add("We have a nice day!");
msgList.add("Hello world!");
Trojan.log("Trojan", msgList);
By default, a single line log is not encrypted, and if you need to encrypt it, the following is used:
Trojan.log("Trojan", "We have a nice day!", true);
3) User Information
When the user information changes or switch users, you can call:
Trojan.refreshUser("new user info");
Of course, if the user logs out, you can pass a null value:
Trojan.refreshUser(null);
4) Upload Solution
In Demo we provided free and simple way such as LeanCloud to upload log file, you can browse, download and download log file.
5) Data Decryption
When we set the encryption key, we can encrypt a single log to ensure the security of sensitive data. We must decrypt the encrypted data When we analyze the log. Use the decryption script as follows:
Compile and generate decryption SO library on MAC, The so library has been generated in the repository. This step can be omitted:
gcc -shared -Wl,-install_name,trojan_decrypt.so -o trojan_decrypt.so -fPIC trojan_decrypt.c
Call python script to decrypt the data on MAC, you need to pass in the decryption key and file path to be decrypted, it should be noted that the path of the python script:
python ./trojan_decrypt.py cipher-key cipher-file-path
0 comments:
Post a Comment