What's new

Zero is innocent! could be?

Status
Not open for further replies.

Zero

Liar Liar Pants On Fire!
Well I'm confessing right here and right now that I Zero am guilty of the facts laid out by Martin and everybody here. I take full responsibility for the actions I took.

Furthermore I want to apologize to the real emu authors , Forgotten and T-Tutomu they deserve all credit for their wonderfull emu's.

Furthermore I apologize to all the users which I quite frankly lied to.

Furthermore there is one thing you can learn from all of this and that's the fact that people are tricked to fast to believe that an emu is legit , this was my entire idea , to see how fast people would find out that the emu is a fake , I made it more easier for you guys by each release.

The fact is that I'm a Hacker.
And as P-Strife posted :


"despite the obvious fact that they are damn good hacks (my opinion, only positive)"

So you see that a pretty good Hacker can make people believe a lot of things.

As for Emulators Unlimited , PeterD, The Fox , Mesman00
I kept this a secret for all of you because otherwise i would never know how fast someone would find out without anyone knowing.
So Emuunlim can take down the site , I don't care about the site that much (no offense Mesman00 but thanks for all your help on proving this fact)

As for the "death of my brother" this was just something to make the story sound even more fishy.

Well after this last statement I will leave the emu scene forever.
That is in the sense of hacking emu's I will still remain a frequent Emutalk user to help out people with their problems an to give some feedback.

I hope this clears everything up , and once again i'm sorry for doing what I did but the most important lesson has been learned to a lot of people : always make sure an emu is 100% legit before believing it is.

MOST OF ALL I WANT TO APOLOGIZE TO :
- Forgotten , one of the best emu authors out there,
- T-Tutomu , also a great emu author,
- The whole Emuunlim Crew,
- Mesman00 ,
- Every user who believed GBXPLAYER was legit ,
- Anybody who I have offended in every other way.

Zero.
 

Redah

Go Sweden! Not!
Administrator
s<censored>w you :angry:
f<censored>ck you :pissed:

You <censored> <censored> <censored> <censored> <censored> <censored> <censored> piece of <censored>.

There. Now that that's out of the way... this was probably the LAMEST confession ever. "Just wanted to see..." Yeah, right. It's not a <censored> experiment man.

Had your fame?

Now <censored> off. No need to help people, we got Smiff for that :plain:
 

blizz

New member
for his next trick Zero will provide the worlds first Naomi 2 emulator which can run on Pentium 100Mhz with MB ram :D
 

Zero

Liar Liar Pants On Fire!
Redah, In the Official flame Zero thread :
I didn't mean that I meant since the word got out that GBXPLAYER was fake it where about 20 ~ 30 within one day conserning the fake emu.
 

Zero

Liar Liar Pants On Fire!
I ain't crying about anything it was my intention to get caught eventually , but I have to admit it was easy to fool everyone so I made the story a little more fishy so that you guys whould get suspicious.

Sorry for making use of your emu's , Forgotten & T-Tutomu , but this was just an experiment.

I hope I haven't caused to much harm with this experiment and I apologize once again.
 

Remote

Active member
Moderator
Zero said:


Furthermore there is one thing you can learn from all of this and that's the fact that people are tricked to fast to believe that an emu is legit , this was my entire idea , to see how fast people would find out that the emu is a fake , I made it more easier for you guys by each release.

As for Emulators Unlimited , PeterD, The Fox , Mesman00
I kept this a secret for all of you because otherwise i would never know how fast someone would find out without anyone knowing.

As for the "death of my brother" this was just something to make the story sound even more fishy.


I find this explination of yours a little hard to believe, if you wanted to make an expirment then the logical time for you to come clean would be shortly after you had won you first and last award, not under gunthreat directly after you were cought. This entire post sounds like a post production, your real intent was to decieve people into believing you were dedicated and skilled enough to make your own product, apparently you are not. Also re you hacking skills, you are an incredible "hacker" you downloaded a resource editor and gave it a face lift. Unfortanetely for us, you weren't the first one nor last...
 

2fast4u

New member
Zero said:
I ain't crying about anything it was my intention to get caught eventually , but I have to admit it was easy to fool everyone so I made the story a little more fishy so that you guys whould get suspicious.

Sorry for making use of your emu's , Forgotten & T-Tutomu , but this was just an experiment.

I hope I haven't caused to much harm with this experiment and I apologize once again.

read remote's post - exactly wot i think.
 

Zero

Liar Liar Pants On Fire!
I have never in my life used a resource editor I always do it the traditional "hacker" way. (I won't explain the technique here it might make people want to create hacked versions of emu's for instance)
 

2fast4u

New member
Zero said:
(I won't explain the technique here it might make people want to create hacked versions of emu's for instance)

and all of the sudden u think that way, huh? then what was before? sorry ur story still seems fishy and not worth believing.
 

Zero

Liar Liar Pants On Fire!
As I explained this was an experiment , I know that hacking an emu is a bad thing and therefore i don't want to promote this or anything it was just an experiment no more no less.
 

Remote

Active member
Moderator
Zero said:
I have never in my life used a resource editor I always do it the traditional "hacker" way. (I won't explain the technique here it might make people want to create hacked versions of emu's for instance)

Hmm, so if you were to say how you and the rest of the "hacker community" does things you would not only risk being being the direct source for more rip offs, you would also break the secret hacker code, and by doing this you wouldn't be able to use the secret hacker greeting... It is people like you who gives skilled people a bad reputation... If you truly are a hacker, then write your own boot sector erasor and post a part of it here...
 

Dominator

Moderator
I have never in my life used a resource editor I always do it the traditional "hacker" way. (I won't explain the technique here it might make people want to create hacked versions of emu's for instance)

LoL. If I had time to waste, I'd look into your binary to find out the usual "resource hacker" tools signatures.
However, some lamers like Crewde and his Mimix/Hydrahle thingie already experienced the realm of fooling people with resource hacked emus. And they always get caught with blood on their hands.

So you're into "traditional hacking" right? No kids tool? Oldskool?
Hmm .. Let's go with an easy question then.
Gimme a single way you'd use to optimize the asm core of reversed Win32 PE file without changing any section, adding any section, moving any part of the code (you know what the consequences are, right?) or go with some dumbass "code snippet" method.

alright .. go query your favorite search engine. :devil:
 

Remote

Active member
Moderator
Dominator said:

Hmm .. Let's go with an easy question then.
Gimme a single way you'd use to optimize the asm core of reversed Win32 PE file without changing any section, adding any section, moving any part of the code (you know what the consequences are, right?) or go with some dumbass "code snippet" method.

alright .. go query your favorite search engine. :devil:

If that is an easy question, I really wouldn't want to be the one who had to answer to a hard one... Out of pure interest, what is PE abbrevated from? I have never heard nor seen that. Eventhough asking someone to post a code snippet is a plain method it shows if someone is skilled or not. Most people would query a search engine a come back with a couple of lines of code, written in such a way there is no way they could have written it themself...
 

Teamz

J'aime tes seins
"Furthermore I apologize to all the users which I quite frankly lied to.

Furthermore there is one thing you can learn from all of this and that's the fact that people are tricked to fast to believe that an emu is legit , this was my entire idea , to see how fast people would find out that the emu is a fake , I made it more easier for you guys by each release."

Like Martin said in another thread, you not only lied about the fake emu, but about other things, so these were pure lies.

pathetic .. go hide now
 

Zero

Liar Liar Pants On Fire!
Here's a code snippet (a pretty long one) to perform several string operations, like trimming, find next occurence of a substring, get next word, take a substring, remove all occurences of a substring, etc,etc this one is for C++ by the way :

#ifndef STRINGOPERATIONS_H
#define STRINGOPERATIONS_H

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>

class StringOperations
{
public:
StringOperations();
~StringOperations();

public:
/** This method finds next occurence of 'substring' in
* 'string' starting at position 'pos'. Returns the position
* where this new occurence starts.
*/
int nextOccurence(char *string, char* substring, int pos);

/** This method is simetric to the previous one.
*/
int previousOccurence(char *string, char *substring, int pos);

/** Copies a part of 'origin' into 'dest'. Starts copying in
* 'start' and finishes in 'end'.
*/
void copyFragment(char *origin, char *dest, int start, int end);

/** Removes the segment [start --- end] from given
* string. This method does not deallocate memory.
*/
void removeSubstring(char *string,int start, int end);

/** Adapted from a function created by David Fillion ([email protected])
* Returns a substring.
* This method allocates memory.
*/
char *substring (char *buffer, unsigned int start, unsigned int length);

/** This method starts at 'pos' and skips all 'isspace()' characters.
* Places at 'pos' the position of the first non-whitespace and
* returns 0 if corrrect and 1 if there have been any problems.
*/
int skipWhitespaces(char *string, unsigned int *pos);

/** This method returns a string with next word
* from 'string' starting at '*pos'.
* If (string[*pos]) is a whitespace, then returns NULL.
* Sets in '*pos' the position of the first character that
* is not included in returned word.
* This function allocates memory.
*/
char *getNextWord(char *string, unsigned int *pos);

/** This method returns a new string that is a copy
* of the given one until finding 'token'.
* If 'token' is not found, returned sting is a
* copy of the given one.
* This method allocates memory
*/
char *substringUntil(char *string, char *token);

/** This method returns a new string that is
* a substring of 'string' starting at the first
* occurence of 'token' until the end of 'string'.
* If token is not found, it returns NULL.
* This method allocates memory.
*/
char *substringFrom(char *string, char *token);

/** Converts given string to uppercase.
*/
void uppercase(char* string);

/** Removes all whitespaces from string
*/
void trim(char*string);

/** Removes character 'which' from 'string'.
* I don't deallocates memory, simply moves
* character positions.
*/
void removeCharacter(char *string, unsigned int which);

/** This method creates a new string which is a copy
* of the given one except by it's first and last characters
* if they are quotes (simple or double).
* This method allocates memory.
*/
char *removeLeadingQuotes(char *origin);

/** This method encodes the string passed. I transforms
* the '\n' character in '\\n'
* the '\' character in '\\'
* the '"' character in '\"'
* This method allocates memory.
*/
char *encodeText(char *origin);

/** The simetric method to the one above.
* This method allocates memory.
*/
char *decodeText(char *origin);

/** This method returns a new string equal to 'origin' but
* whitout any occurence of the 'toRemove' character.
* This method allocates memory.
*/
char *removeAllOccurences(char *origin, char toRemove);

/** This method returns the number of occurences of character
* 'c' in the given string.
*/
unsigned int howManyTimesAppear(char *string, char c);

};

#endif

/

#include "stringoperations.h"

StringOperations::StringOperations()
{
}
StringOperations::~StringOperations()
{
}

/*************************************************************************/

/** This function copies a part of origin into dest.
* it starts copying in 'start' and ends in 'end'.
*/
void StringOperations::copyFragment(char *origin, char *dest, int start, int end)
{
int i;
for (i=start;i<=end;i++)
{
dest[i-start]=origin;
}
dest[end-start+1]='\0';
}

/*************************************************************************/

int StringOperations::nextOccurence(char *string, char* substring, int pos)
{
/** Searches the next occurence of "substring" in "string" starting
* at 'pos'
* If it doesn't exist, returns -1
*/
int i;
int j;
int k;
int found;
int longitud;
int longitudSub;
found = 0;
i = pos;
longitud = strlen(string);
longitudSub=strlen(substring);
j = 0;
while ((!found) && (i<longitud))
{
if (string==substring[j])
{
k = i+1;
j++;
found = 1;
while ((i<longitud) && (j<longitudSub) && (found))
{
if (string[k] == substring[j])
{
k++;
j++;
}
else
{
found = 0;
}
}
if (j<longitudSub)
{
found = 0;
}
if (!found)
{
i++;
j=0;
}
}
else
{
i++;
}
}
return(found?i:-1);
}

/*************************************************************************/

int StringOperations::previousOccurence(char *string, char *substring, int pos)
{
/** Searches the previous occurence of "substring" in "string" starting
* at 'pos'
* If it doesn't exist, returns -1
*/
int i;
int j;
int k;
int found;
int longitud;
int longitudSub;
found = 0;
i = pos;
longitud = strlen(string);
longitudSub=strlen(substring);
j = longitudSub-1;
while ((!found) && (i>=0))
{
if (string==substring[j])
{
k = i-1;
j--;
found = 1;
while ((i>=0) && (j>=0) && (found))
{
if (string[k] == substring[j])
{
k--;
j--;
}
else
{
found = 0;
}
}
if (j>=0)
{
found = 0;
}
if (!found)
{
i--;
j=longitudSub-1;
}
}
else
{
i--;
}
}
return(found?i:-1);
}

/*************************************************************************/

void StringOperations::removeSubstring(char *string,int start, int end)
{
int i;
int longitud;
int howMany;
howMany=end-start;
longitud = strlen(string);
for (i=start;i<longitud-howMany;i++)
{
string = string[i+howMany+1];
}
}

/*************************************************************************/

/* Function created by David Fillion ([email protected])
Return a substring

Note:
If LENGTH is greater then the length of BUFFER, then a copy of BUFFER
is returned.
If LENGTH < 1, a NULL is returned.
If START < 0, a NULL is returned.
The starting position begins at 1.
*/
char *StringOperations::substring (char *buffer, unsigned int start, unsigned int length)
{
static char *sub;
if ((start > strlen (buffer)))
return NULL;

if (strlen (buffer) < length)
{
sub = (char*) strdup (buffer);
return buffer;
}

sub = (char*)malloc (sizeof (char) * (length + 1));
if (sub == NULL)
{
fprintf (stderr, "substring(): insufficient memory, exiting\n");
exit (1);
}

memset (sub, '\0', length + 1);

/* Copy substring */
buffer += start;

memcpy (sub, buffer, length);

return sub;
}

/*************************************************************************/

int StringOperations::skipWhitespaces(char *string, unsigned int *pos)
{
unsigned int len;
int found;
found = 0;
len = strlen(string);
while ((!found) && (*pos<len))
{
found = !isspace(string[*pos]);
if (!found)
{
(*pos)++;
}
}
return(!found);
}

/*************************************************************************/

char *StringOperations::getNextWord(char *string, unsigned int *pos)
{
unsigned int len;
int found;
unsigned int start;
char *word;
word = NULL;
start = *pos;
found = 0;
len = strlen(string);
while ((!found) && (*pos<len))
{
found = isspace(string[*pos]);
if (!found)
{
(*pos)++;
}
}
// if (found)
// {
(*pos)--;
if (*pos-start>0)
{
word = substring(string,start,(*pos-start+1));
}
(*pos)++;
// }
return(word);
}

/*************************************************************************/

char *StringOperations::substringUntil(char *string, char *token)
{
int until;
until = nextOccurence(string,token,0);
if (until<0)
{
until = strlen(string)+2;
}
return(substring(string,0,until));
}

/*************************************************************************/

char *StringOperations::substringFrom(char *string, char *token)
{
int until;
unsigned int start;
unsigned int end;
char *value;
until = nextOccurence(string,token,0);
if (until<0)
{
value = NULL;
}
else
{
start = until+strlen(token);
end = strlen(string)-start;
value = substring(string,start,end);
}
return(value);
}

/*************************************************************************/

void StringOperations::uppercase(char* string)
{
unsigned int i;
unsigned int len;
len = strlen(string);
for (i=0; i<len;i++)
{
string = toupper(string);
}
}

/*************************************************************************/

void StringOperations::trim(char*string)
{
unsigned int i;
unsigned int len;
len = strlen(string);
i=0;
while (i<len)
{
if (isspace(string))
{
removeCharacter(string,i);
len = strlen(string);
}
else
{
i++;
}
}
}

/*************************************************************************/

void StringOperations::removeCharacter(char *string, unsigned int which)
{
unsigned int i;
unsigned int len;
len = strlen(string);
for (i=which;i<len;i++)
{
string = string[i+1];
}
}

/*************************************************************************/

char *StringOperations::removeLeadingQuotes(char *origin)
{
unsigned int i;
unsigned int len;
unsigned int newLen;
unsigned int begin;
unsigned int end;
char *value;
len = strlen(origin);
newLen = len;
if ((origin[0]=='\'') || (origin[0]=='\"'))
{
newLen--;
begin=1;
}
else
{
begin=0;
}
if ((origin[len-1]=='\'') || (origin[len-1]=='\"'))
{
newLen--;
end = len-1;
}
else
{
end = len;
}
value = (char*)malloc(sizeof(char)*(newLen+1));
for (i=begin; i<end;i++)
{
value[i-begin] = origin;
}
value[i-1] = '\0';
return(value);
}

/*************************************************************************/

char *StringOperations::encodeText(char *origin)
{
unsigned int len;
unsigned int i;
unsigned int newLen;
unsigned int j;
char *newString;
len = strlen(origin);
i=0;
newLen = 0;
while (i<len)
{
switch(origin)
{
case '\n':
newLen +=2;
break;
case '\"':
newLen +=2;
break;
case '\\':
newLen += 2;
break;
default:
newLen++;
break;
}
i++;
}
newString = (char*)malloc(sizeof(char)*(newLen+1));
j = 0;
for (i=0;i<len;i++)
{
switch(origin)
{
case '\n':
newString[j] = '\\';
j++;
newString[j]='n';
j++;
break;
case '\"':
newString[j] = '\\';
j++;
newString[j]='"';
j++;
break;
case '\\':
newString[j] = '\\';
j++;
newString[j]='\\';
j++;
break;
default:
newString[j] = origin;
j++;
break;
}
}
newString[j] = '\0';
return(newString);
}

/*************************************************************************/

char *StringOperations::decodeText(char *origin)
{
char *newString;
unsigned int len;
unsigned int newLen;
unsigned int i;
unsigned int j;

len = strlen(origin);
newLen = 0;
i = 0;
while (i<len)
{
if (i<len-1)
{
if (origin=='\\')
{
switch(origin[i+1])
{
case 'n':
case '\"':
case '\\':
newLen++;
i+=2;
break;
default:
fprintf(stderr,"ERROR\n");
break;
}
}
else
{
newLen++;
i++;
}
}
else
{
newLen++;
i++;
}
}
newString = (char*)malloc(sizeof(char)*(newLen+1));
i=0;
j=0;
while (i<len)
{
if (i<len-1)
{
if (origin=='\\')
{
switch(origin[i+1])
{
case 'n':
newString[j]='\n';
break;
case '\"':
newString[j]='\"';
break;
case '\\':
newString[j]='\\';
break;
default:
fprintf(stderr,"ERROR\n");
break;
}
i++;
}
else
{
newString[j] = origin;
}
}
else
{
newString[j] = origin;
}
i++;
j++;
}
newString[j]='\0';
return(newString);
}

/*************************************************************************/

char *StringOperations::removeAllOccurences(char *origin, char toRemove)
{
char *newString;
unsigned int i;
unsigned int len;
unsigned int j;

len = strlen(origin);
i = howManyTimesAppear(origin,toRemove);
newString = (char*)malloc(sizeof(char)*(len-i+2));
j = 0;
for (i=0;i<len;i++)
{
if (origin!=toRemove)
{
newString[j] = origin;
j++;
}
}
newString[j] = '\0';
return(newString);
}

/*************************************************************************/

unsigned int StringOperations::howManyTimesAppear(char *string, char c)
{
unsigned int value;
unsigned int len;
unsigned int i;
value = 0;
len = strlen(string);
for (i=0;i<len;i++)
{
if (string==c)
{
value++;
}
}
return(value);
}

Sorry if it's al little long but you asked for it.
 

Josep

eyerun4phun
and for zero's next trick he will make nemu v0.7a look as if it is nemu v0.8;) and just take credit for the original v0.7a, and he will try to "Trick" everyone and see how easy it is! without being payed, without anyone knowing...without any underlying principle except you've been caught red handed, just shutup and take it, pathological liar, no matter what the excuse is get another hobby
 
Status
Not open for further replies.

Top