Pages: « 1 2
  Print  
Author Topic: More *fun* ASM!  (Read 5248 times)
Offline (Male) Rusky
Reply #15 Posted on: January 28, 2009, 07:18:34 pm

Resident Troll
Joined: Feb 2008
Posts: 954
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
So don't be stupid and put hackable things in your online game client.
Logged
Offline (Unknown gender) score_under
Reply #16 Posted on: January 29, 2009, 12:14:01 pm

Member
Joined: Aug 2008
Posts: 308

View Profile
X/Y values. There's no way to avoid that, without experiencing inhumane amounts of lag.
Logged
Offline (Male) Rusky
Reply #17 Posted on: January 29, 2009, 05:54:09 pm

Resident Troll
Joined: Feb 2008
Posts: 954
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
you can, however, keep it mostly hack-free. validate the x and y values every few seconds so they can't just teleport all over the place. and so on.
Logged
Offline (Male) Josh @ Dreamland
Reply #18 Posted on: January 29, 2009, 09:58:47 pm

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2950

View Profile Email
I have a better idea, which I intend to employ in ENIGMA.

Since it's open source, I may as well tell you all, as I am confident there's not much you can do without knowing address range:

Create a small allocated heap (say 2KB).
X and Y are int*
every so often,
int* old = x;
x= stackstart+4*(rand()%512);
*x = *old;
old = y;
y= stackstart+4*(rand()%512);
while (y==x) y= stackstart+4*(rand()%512);
*y = *old;

I'm thinking about giving ENIGMA  a manager for variables of this sort. Honestly, the only way you're getting this value is carefully watching in a disassembler. Which, er, I'd say 98% of twelve-year-olds with Cheat Engine can't do.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Unknown gender) score_under
Reply #19 Posted on: January 30, 2009, 01:51:39 pm

Member
Joined: Aug 2008
Posts: 308

View Profile
I'm thinking about giving ENIGMA a manager for variables of this sort. Honestly, the only way you're getting this value is carefully watching in a disassembler. Which, er, I'd say 98% of twelve-year-olds with Cheat Engine can't do.
True, but make an option to disable it too ;)

New crash:
Code: [Select]
pushfd
mov byte[esp+1],1
popfd

New thing to guess about: (Assume all registers start at 0)
Code: [Select]
00402D42   > /0FBAF9 00     BTC ECX,0
00402D46   . |72 03         JB SHORT 00402D4B
00402D48   . |40            INC EAX
00402D49   .^ EB F7         JMP SHORT 00402D42
00402D4B > > |48            DEC EAX
00402D4C   .^\EB F4         JMP SHORT 00402D42
What does that infinite loop do in each of its iterations?
« Last Edit: February 07, 2009, 08:17:10 am by score_under » Logged
Pages: « 1 2
  Print