OutdatedExpression Parser Compiler [epcc]

Posts 13 of 3 · Page 1 of 1
Expression Parser Compiler [epcc]
Introduction
This release is specifically meant for Expression parser with a version number of >= 1x7, as that is the only version able to parse binary files. This is a command line utility used to compile expression parser source files, it doesn't really obfuscate anything, I won't go into detail on how it's done. (If you're actually interested in how the method works, feel free to reverse engineer the binary).


Usage
Code:
 epcc  [-z <byte>] [-y <byte>] [-x <byte>] [-p <byte>] -o <string> -i
         <string> -r <string> [--] [--version] [-h]


Where:

   -z <byte>,  --channel-z <byte>
     obfuscation channel on plane z

   -y <byte>,  --channel-y <byte>
     obfuscation channel on plane y

   -x <byte>,  --channel-x <byte>
     obfuscation channel on plane x

   -p <byte>,  --obfuscation-level <byte>
     obfuscation level or key

   -o <string>,  --output <string>
     (required)  output filename (extension is overwritten to *.oep)

   -i <string>,  --input <string>
     (required)  input file path (without relative)

   -r <string>,  --relative <string>
     (required)  relative path

   --,  --ignore_rest
     Ignores the rest of the labeled arguments following this flag.

   --version
     Displays version information and exits.

   -h,  --help
     Displays usage information and exits.


   Yamiez EP Compiler
Example:
I have the two following source files of ep:
ep.ep
Code:
import "ep2.ep";


auto test = myGroup( 10, 25 );
test->set_y( 9 ); 
test->set_y( 200 );  
test->x = 25;

cout << "myGroup( " << test->get_x( ) << ", " << test->get_y( ) << " )" << endl;
ep2.ep
Code:
import ios;
import bo;
import vector;

auto vec = vector();
vec->emplace_back( "Hello " );
vec->emplace_back( "World" );


auto beg = vec->begin();
auto end = vec->end();

while( beg < end )
{
	cout << beg->access( );
	beg->increment();
}

cout << endl;


group myGroup
{
members:
	public var x;
	private var &y;
	
methods:
	myGroup( &x, &y )
	{
		this->x = x;
		this->y = y;
	};
	
	method get_x( ) { return x; };
	
	method set_x( &x ) { this->x = x; };

	method get_y( ) { return y; };
	
	method set_y( &y )
	{
		if ( y > x )
			return 0;
		this->y = y;
	};
};
I run epcc with the following arguments (assuming that ep.ep and ep2.ep are located at C:/ep.ep and C:/ep2.ep):
Code:
epcc -i ep.ep -o output -r "C:/"
It generates the output file at C:/output.oep (because we specified the -o or output flag as "output")

You can then parse and run the oep file with ep::module::eval_file, example output of the above example:


@Hunter or @Hugo Boss

Sincerely,
Yamiez
epcc_mpgh.net.rar38 KB · 4 downloads 1/55 malicious
@Hunter or @Hugo Boss please close this thread, as of ep 1x9 this compiler is no longer working, I'm working on a completely new compiler expected to be done by ep 1x10.
Posts 13 of 3 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?