The random rantings of a concerned programmer.

Archive for May, 2006


May 30th, 2006 | Category: Uncategorized

Okay, I think I’m reaching my limits for social solitude… I’ve been at home for what? 3 weeks now? I haven’t really chilled with any friends in over a month, haven’t been drunk in longer, and am getting really really really bored with it.


The past week’s solution of watching insane amounts of anime is starting to make me feel “ugh”. I’ve gone through Ghost in the Shell: Stand Alone Complex and 2nd GIG, Samurai Champloo, and I’m starting to work on Full Metal Alchemist again. Are there any good anime’s I’m missing?

GAAH. I need to go back to school…



May 26th, 2006 | Category: Uncategorized

Today I was goofing around with CheatEngine some more, simply because I find it interesting how easy it is to hijack code. So Hippo and I were mucking around in a certain game (both with CE open), and of course, the first thing I started looking for was the address of the health.

It only took a couple minutes to find it, and freezing the value in memory only kind of worked – since Hippo was hosting the game and the health, technically, is kind of done on the server-side my frozen value didn’t really do all that much. Dur dur.

But I needed my godmode, because Hippo was using a speedhack and flying around the map. So I click another button, and find the code which writes to that value in memory. Bingo – two instances. So I hop over to the first one and open up the assembly. Now, I know hardly anything about ASM, but I see a jmp (well, it wasn’t a jmp, it was the short-jump thingy, can’t remember the opcode for it) and decide to cut the branch. This is basically as simple as setting the Zf flag in the register. So I ticked the box.

I go back in-game, and to my delight, Hippo’s attacks no longer deal damage. Why? Because I killed some part of the collision check process. Whoo whoo.

At this point, the server started to lose stability (we were mucking around a lot), but Hippo (being the host) also managed to warp himself around the map (by changing his local position, since he was the host it worked; I doubt it would have worked for me, a client), give himself unlimited ammo/energy, and a couple of other things.

Now, I’m not an experienced hacker, and Hippo had never used CheatEngine before, and yet we were able to completely tear apart this game in about an hour. Sure, a lot of the data was maintained by the server, but a huuuge problem with game developers these days is that they really don’t know how to prevent cheats, simply because they don’t know how its done.

I would therefore encourage everyone to go and pick up a copy of CheatEngine, just to see the tools of the trade. I don’t encourage using said tools in a manner other than educational purposes, however, many people who play your games will not share the same restraint Hippo and I have.

As Sun Tzu once wrote, “To know your Enemy, you must become your Enemy.”



May 24th, 2006 | Category: Uncategorized

I decided to start my development session today by switching it up a little. Whee new GUI style!!!

typedef pawn::gui::Defaultstyle< pawn::ogl::OGLGfxAdapter > hstyle;
hstyle::setBackgroundColor( gfx.makeColor( 64, 70, 64 ) );
hstyle::setBorderColor( gfx.makeColor( 255, 255, 255 ) );
hstyle::setBorderSize( 1 );
hstyle::setForegroundColor( gfx.makeColor( 154, 164, 154 ) );
hstyle::setHighlightColor( gfx.makeColor( 255, 255, 255 ) );
hstyle::setShadowColor( gfx.makeColor( 118, 128, 118 ) );
hstyle::setTextColor( gfx.makeColor( 192, 192, 192 ) );
hstyle::setTitleBarColor( gfx.makeColor( 10, 90, 20 ) );
hstyle::setTitleBarSize( 20 );
hstyle::setTitleTextColor( gfx.makeColor( 255, 255, 255 ) );

Comments are off for this post


May 24th, 2006 | Category: Uncategorized

Har har har everyone got my code question wrong (line 1 is valid, line 2 is not).

My parents ordered a jacuzzi a while back and it arrived today. Conveniently I was the only one home. PROBLEM: Our house sits on a hill roughly 4 stories high. And the tub weighs probably a good 800lbs or so (no idea, really). Another problem – the smallest dimension of the rectangular package is larger than the largest dimension of every way to the back of the house.

So of course, its sitting in front of the garage at the top of the hill. It took 4 people and a running start with a mechanical forklift to get the damned thing up the driveway. Apparently, we’ll need about 8 people to put the damned thing on its side and roll it like a square wheel around the side of the house, after cutting down some trees.

What a bloody pain in the ass for something I’m never going to use. FFH.



May 23rd, 2006 | Category: Uncategorized

Har har har time for another code question!

Given the following code -

struct MyBase {
    void foo();

struct MyStruct : MyBase {};
class MyClass : MyBase {};

void main() {
    MyStruct myStruct;
    MyClass  myClass;; // 1;  // 2

Are either of the commented lines valid?

The more you know :]


Next Page »