[ chaplja @ 02.06.2011. 22:30 ] @
Pozdrav, ovo je alpha verzija mog "code obfuscatora" koji ce u konacnosti raditi na principu Themide, VMProtecta, CodeVirtualizera, itd. - znači u C/C++ kodu (ili drugom programskom jeziku koji podržava inline assembler) se označe dijelovi koda koji ce se ili "mutirati" ili virtualizirati. Kod mutacije se instrukcije zamijenjuju nizom instrukcija koje daju isti rezultat i ubacuje se "junk" instrukcije koje ne znače ništa, ali otežavaju reversanje. Kao što rekoh, ovo je alpha verzija i puno toga nedostaje ili je privremeno, tj. kompleksnost generirane (zaštićene) verzije aplikacije ce biti mnogo veća u finalnoj verziji. Za više detalja pročitati readme: Code: # ChapljaVM Code Obfuscator readme ChapljaVM Code Obfuscator is a tool used for protection of PE executable files. It is currently in alpha stage and is thus far from finished. Many instructions are not supported yet or may be improperly mutated which can result in the protection application not functioning correctly (e.g. crashing). Notes: The input executable must be compiled with image randomization disabled and no relocation sections or it will crash when loaded at non default base address. This means you must disable the above mentioned features in your compiler for your EXE files as well. Only 32bit files are supported at this stage and instructions in the marked code blocks must not have any prefixes (e.g. lock, repne, etc). Also, certain instructions are currently supported only in certain forms, for example: "xor register, register" may be supported, but "xor [mem], imm" not. More instructions will be supported soon, but you may report an instruction used by your program if it's not supported and it will take priority over other instructions. Contact details are on the bottom of this file. The code produced at this stage is a bit too large (100 bytes of code becomes around 1600 bytes of code, but that will be optimized soon) and not all instructions are mutated, some are simply copied in its original form. Remember, this is an alpha version! Many things are temporary and the obfuscation complexity will be much more complex in future versions. The protection options are not customizable at this stage, the options block will be enabled at a later point. How to use: Include the "ChapljaVM_SDK.h" in your C/C++ project and use CVM_BEGIN and CVM_END macros to mark the start and the end of a code block you wish to protect. Please report all bugs to [email protected] - this includes unsupported instructions as well as any other kind of bug (e.g. the generated exe file is crashing or producing wrong results). # Credits for used libraries * PeLib - www.pelib.com Copyright 2004 by Sebastian Porst Original license in PELIB_LICENSE.txt * libudis86 - http://udis86.sourceforge.net Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Original license in UDIS86_LICENSE.txt * AsmJit - http://code.google.com/p/asmjit/ Copyright (c) 2008-2010, Petr Kobalicek Original license in ASMJIT_COPYING.txt # www.chaplja.net | www.valsimot.com | chaplja.blogspot.com # [email protected] Download: http://chaplja.net/ChapljaVM.zip Moj blog: http://chaplja.blogspot.com/ (tu ce biti postavljene nove verzije) Screenshot programa: ![]() Primjer aplikacije: Code: #include "../CVM/ChapljaVM_SDK.h" #include <stdio.h> int main(int argc, char *argv[]) { CVM_BEGIN printf("Program %s sa %d argumenata.\n", argv[0], argc); CVM_END return 0; } Originalan kod: ![]() Mali dio "mutiranog" kod: ![]() |