29.01.2012, 21:39
(
Последний раз редактировалось Gh05t_; 27.02.2012 в 20:40.
)
Highly Recommended: Backup your gamemode (.pwn file)
What is this?
pawn_protect.exe is an application in which formats your .pwn file to unreadable code in which may only be deciphered through a code from values of 0 - 700. The application seems to be most useful to those whom are extremely 'careful' regarding their script.
Instructions:
1. Download the application.
2. Extract the application to the folder containing your gamemode (.pwn).
3. Execute the application.
How to use?
http://www.sendspace.com/file/fzyvru
http://www.mediafire.com/?6p9za3nlo6b4ovv
Source:
Special Thanks
Kyosaur - Support and help whenever needed.
Note: The source is C++, NOT PAWN related material. I've managed to make it as less redundant though the algorithm in my opinion is completely absurd but is the only way I could have thought of. Some techniques used are frowned upon by myself including some c-style methods, usage of goto etc. If you have any questions, comments, please feel free to post.
What is this?
pawn_protect.exe is an application in which formats your .pwn file to unreadable code in which may only be deciphered through a code from values of 0 - 700. The application seems to be most useful to those whom are extremely 'careful' regarding their script.
Instructions:
1. Download the application.
2. Extract the application to the folder containing your gamemode (.pwn).
3. Execute the application.
How to use?
- Type format (case sensitive) to format your .pwn file to a .pwn2.
- Type access (case sensitive) to convert your .pwn2 file to a .pwn.
http://www.sendspace.com/file/fzyvru
http://www.mediafire.com/?6p9za3nlo6b4ovv
Source:
Код:
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <fstream>
using namespace std;
void enc(char * _cEnc, int _shf);
void dec(char * _cDec, int _shf);
void enc(char * _cEnc, int _shf)
{
for(int i=0; _cEnc[i] != '\0'; ++i)
_cEnc[i]+=_shf;
}
void dec(char * _cDec, int _shf)
{
for(int i=0; _cDec[i] != '\0'; ++i)
_cDec[i]-=_shf;
}
int main (void)
{
string _input;
string _filename;
int _code;
system("title script_protect.exe");
cout << "Author: Gh05t\nDate Published: 1/28/12\nVersion: 1.0.0\n\n";
EXECUTE:
cin >> _input;
if(_input == "format")
{
cout << "Filename: ";
cin >> _filename;
string _pwn_filename = _filename + ".pwn"; //append...
ifstream file(_pwn_filename.c_str());
if(!file.good())
{
cout << "[Error]: " <<"unable to retrieve " << _pwn_filename << "! \n\n";
file.close();
goto EXECUTE;
}
else
{
CODE:
cout << "Insert a code (values from 0 - 700): ";
cin >> _code;
if(_code < 1 || _code > 700)
{
cout << "[Error]: invalid code.\n\n";
goto CODE;
}
string _pwn2_filename = _filename + ".pwn2"; //format...
ofstream _pwn2_filecreate(_pwn2_filename.c_str());
string _data;
char _cStr[999999];
ifstream _file_1;
_file_1.open(_pwn_filename.c_str());
ofstream _file_2;
_file_2.open (_pwn2_filename.c_str());
cout << "Formatting..." << endl;
while(_file_1)
{
getline(_file_1, _data);
//cout << _data << endl;
strcpy(_cStr, _data.c_str()); //to char...
enc(_cStr, _code);
_file_2 << _cStr << endl;
}
_file_1.close();
_file_2.close();
file.close();
cout << "Formatting completed!\n" << endl;
remove( _pwn_filename.c_str() );
goto EXECUTE;
}
}
else if(_input == "access")
{
cout << "Filename: ";
cin >> _filename;
string _pwn2_filename = _filename + ".pwn2";
ifstream file(_pwn2_filename.c_str());
if(!file.good())
{
cout << "[Error]: " <<"unable to retrieve " << _pwn2_filename << "! \n\n";
file.close();
goto EXECUTE;
}
else
{
CODE2:
cout << "Code: ";
cin >> _code;
if(_code < 1 || _code > 700)
{
cout << "[Error]: invalid code.\n\n";
goto CODE2;
}
string _pwn_filename = _filename + ".pwn";
ofstream _pwn_filecreate(_pwn_filename.c_str());
string _data;
char _cStr[999999];
ifstream _file_1;
_file_1.open (_pwn2_filename.c_str());
ofstream _file_2;
_file_2.open(_pwn_filename.c_str());
cout << "Formatting..." << endl;
while(_file_1)
{
getline(_file_1, _data);
//cout << _data << endl;
strcpy(_cStr, _data.c_str()); //to char...
dec(_cStr, _code);
_file_2 << _cStr << endl;
}
_file_1.close();
_file_2.close();
file.close();
cout << "Formatting completed!\n" << endl;
remove( _pwn2_filename.c_str() );
goto EXECUTE;
}
}
else if(_input != "format" || _input != "access")
{
cout << "[Error]: invalid command(_input)\n\n";
goto EXECUTE;
}
goto EXECUTE;
}
Kyosaur - Support and help whenever needed.
Note: The source is C++, NOT PAWN related material. I've managed to make it as less redundant though the algorithm in my opinion is completely absurd but is the only way I could have thought of. Some techniques used are frowned upon by myself including some c-style methods, usage of goto etc. If you have any questions, comments, please feel free to post.


