Hello world!

Welcome to my blog!

This is actually my first post here, all the older ones are imported from the old forum, which I wanted to get rid of for some time already but didn’t have the time to.
Now, as my previous hosting crashed, and WordPress 3.0 was released, I decided to give it a try.

Enjoy your stay :)

Posted in Uncategorized at June 17th, 2010. 7 Comments.

Revealing the secrets of Icy Tower v1.3.1

Hello :)

The stuff I’m going to release here is something I’ve worked on a year ago. Back then, v1.3.1 was the latest version of Icy Tower, and I’m sure that if I’d release it then, johanp would hate me as heck (remember how he reacted on Icy Tower Replay Editor?). But today, Icy Tower v1.3.1 is history. Also, IMO, Icy Tower is history in general (at least the desktop game, can’t tell anything about mobile/facebook as I don’t really know what these are). v1.4 mostly ruined the game – it became more static and ugly (no eye candy, images look stretched), harold’s got large ears and is not as cool as before, the game’s got lots of options, which makes it more complicated. Also, the official forum is not as active as it was before.
So, here it is…

A project called replay_checker:
rar replay_checker.rar (45.34 KB)

This small console program does the following: loads a replay, checks it for validity (including the hash), and then silently plays the replay to verify it’s validity, just like the official itr checker.
So, what’s so special about it? It’s completely open source!
The replay file format, the hash calculation method, and the Icy Tower physics (in fact it’s whole engine) – these are available to look at from inside.
If you are familiar with graphics programming, you can easily turn this replay_checker to a replay_player, or even write an Icy Tower like game, which is capable of saving compatible replays :)

P.S. You can download Icy Tower v1.3.1 here.

P.P.S.
rar bonus.rar (518.94 KB)

Posted in Reverse Engineering at April 4th, 2010. 8 Comments.

A command-line screenshot maker

When googling for a command-line screenshot maker, all I found was a bloated 3 MB tool and this nifty piece of code.
So I took it and added some command line options I needed:

-filename "my screeny.png"    file name (default: screenshot.png)
-encoder png                  file encoder: bmp/jpeg/gif/tiff/png (default: png)
-quality 100                  file quality for jpeg (between 0 and 100)
-resize 50                    image size, % of the original size (between 1 and 99)

Perhaps it’s gonna be useful to others, so I’m releasing it.
The code and a compiled binary are attached.

rar source.rar (2.97 KB)

rar binary.rar (20.24 KB)

Posted in Programming at November 16th, 2009. 1 Comment.

Custom Buffer-Manipulation Routines

Here’s my rewrite of the Custom Buffer-Manipulation Routines by Piotr Mintus.
Optimized for and works on 32-bit and 64-bit environments.

//**********************************************************************
// File: buffer.h
//
// Custom Buffer-Manipulation Routines
//
// By RaMMicHaeL, 12.10.2009
//**********************************************************************

#ifndef _BUFFER_H_
#define _BUFFER_H_

#ifdef FillMemory
#undef FillMemory
#endif
#ifdef ZeroMemory
#undef ZeroMemory
#endif
#ifdef CopyMemory
#undef CopyMemory
#endif
#ifdef MoveMemory
#undef MoveMemory
#endif

__forceinline
void FillMemory(PVOID Destination, SIZE_T Length, BYTE Fill)
{
	SIZE_T *sizet_p;
	unsigned char *uchar_p;
	SIZE_T sizet_fill;
	SIZE_T count;

	sizet_p = (SIZE_T *)Destination;

	count = Length/sizeof(SIZE_T);
	if(count)
	{
		sizet_fill = Fill;
		sizet_fill |= sizet_fill << 8;
		sizet_fill |= sizet_fill << 16;

#ifdef _WIN64
		sizet_fill |= sizet_fill << 32;
#endif

		do
			*(sizet_p++) = sizet_fill;
		while(--count);
	}

	uchar_p = (unsigned char *)sizet_p;

	count = Length & (sizeof(SIZE_T)-1);
	if(count)
	{
		do
			*(uchar_p++) = Fill;
		while(--count);
	}
}

#define ZeroMemory(Destination, Length) FillMemory(Destination, Length, 0)

__forceinline
void CopyMemory(PVOID Destination, const VOID *Source, SIZE_T Length)
{
	SIZE_T *sizet_p_dest, *sizet_p_src;
	unsigned char *uchar_p_dest, *uchar_p_src;
	SIZE_T count;

	sizet_p_dest = (SIZE_T *)Destination;
	sizet_p_src = (SIZE_T *)Source;

	count = Length/sizeof(SIZE_T);
	if(count)
	{
		do
			*(sizet_p_dest++) = *(sizet_p_src++);
		while(--count);
	}

	uchar_p_dest = (unsigned char *)sizet_p_dest;
	uchar_p_src = (unsigned char *)sizet_p_src;

	count = Length & (sizeof(SIZE_T)-1);
	if(count)
	{
		do
			*(uchar_p_dest++) = *(uchar_p_src++);
		while(--count);
	}
}

__forceinline
void MoveMemory(PVOID Destination, const VOID *Source, SIZE_T Length)
{
	SIZE_T *sizet_p_dest, *sizet_p_src;
	unsigned char *uchar_p_dest, *uchar_p_src;
	SIZE_T count;

	if(Destination > Source)
	{
		// Copy in reverse

		uchar_p_dest = (unsigned char *)Destination+Length;
		uchar_p_src = (unsigned char *)Source+Length;

		count = Length & (sizeof(SIZE_T)-1);
		if(count)
		{
			do
				*(--uchar_p_dest) = *(--uchar_p_src);
			while(--count);
		}

		sizet_p_dest = (SIZE_T *)uchar_p_dest;
		sizet_p_src = (SIZE_T *)uchar_p_src;

		count = Length/sizeof(SIZE_T);
		if(count)
		{
			do
				*(--sizet_p_dest) = *(--sizet_p_src);
			while(--count);
		}
	}
	else
		CopyMemory(Destination, Source, Length);
}

#endif  // _BUFFER_H_
Posted in Programming at October 12th, 2009. No Comments.

7 Taskbar Tweaker

This programs enables you to tweak your Windows 7 taskbar. The tweaks are divided into three sections:
Taskbar items: control taskbar items related stuff, like middle/right clicking, hovering, dropping, etc.
Grouping and combining: disable grouping, allow to drag windows between groups, force/disable combining, etc.
Other taskbar options: mouse wheel options, double/middle clicking on the empty space of the taskbar, and misc.

Taskbar Inspector

A tool that allows you to:
- Configure labeling/grouping/combining per Application ID.
- Reorder items within a tab group (drag’n'drop).
- Close/minimize/etc. multiple windows at once.
- Change Application ID of windows (that is, grouping whatever windows you want).
You can open it from the tweaker main window, from it’s tray menu, or optionally by double/middle clicking the empty space of the taskbar.

Demo video
Here is a video that demonstrates some of the tweaks:

Download (portable installation available)
exe 7tt_setup.exe (331.07 kB)

Available languages:
English, French, German, Italian, Polish, Brazilian Portuguese, Russian, Simplified Chinese, Slovenian, Spanish, Swedish, Turkish.
Read More…

Posted in Releases, Software at September 30th, 2009. 757 Comments.

MUltimate Assembler (an OllyDbg plugin)

Here is a multiline (dis)assembler, which supports labels and data (C-style string).
A perfect tool for writing code caves and stuff.

rar multiasm.rar (61.68 kB)

Posted in Releases, Software at September 13th, 2009. 19 Comments.

Icy Tower v1.3.1 mods

Sparse Floor mod on FLD
Solid Floor mod on FLD

rar icytower13_sparse_floor.rar (274.73 KB)

rar icytower13_solid_floor.rar (271.07 KB)

Posted in Reverse Engineering at May 6th, 2009. No Comments.

TightVNC portable (version 1.3.10)

What is TightVNC

Recently, a new version of TightVNC was released, and a portable version of it for U3 flash drives appeared.
That’s great, but what if you don’t have a U3 flash drive, or you don’t like the U3 system in general (that’s me), or you don’t want to use it on a flash drive at all?

Well, here is how you extract the program itself from the .u3p package for a regular use:
1. Download it here.
2. Use WinRAR or similar to extract the host folder from that file, which is in fact a zip archive.
3. Use the following command line parameters to use a local ini file instead of the registry for storing your settings:
winvnc.exe -runwithinifile .\winvnc.ini
vncviewer.exe -settingsfile .\vncviewer.ini

Now you can enjoy the portable version of TightVNC without a U3 drive.

But you must agree, that it’s not really handy to use a command line every time you want to run TightVNC. Well, I’ve patched winvnc.exe and vncviewer.exe and made them use an ini file by default. These are attached on that topic.

Finally I want to advice you to make a donation to support the project.

rar TightVNC_portable.rar (413.23 KB)

Posted in Reverse Engineering at May 6th, 2009. 4 Comments.

Icy Tower Replay Tool

This tool for Icy Tower replays, as the name states, can do the following:
- Load a replay and view it’s content.
- Play a replay and compare real results with the one in the headers.
- Rename a replay, while suggesting a standard Icy-Tower-style file name.
- Edit a replay.
- Associate itself and Icy Tower with .itr files.
- And one hidden feature I might tell you about one day. :)

rar Icy_Tower_Replay_Tool.rar (180.97 KB)

Posted in Releases, Software at April 16th, 2009. No Comments.

Ragdoll Masters Online

Original post from ragdollsoft.com forums:

Hello!

I was working on a Ragdoll Masters add-on to enable online gaming a while ago. It worked locally, but had some problems online, so I’ve stopped working on it and eventually forgot about it.
Now, after reformatting my PC, while looking at the backups, I’ve found that files, and decided to release them. Maybe I’ll eventually make a decent online feature for Ragdoll Masters :) .

The situation now:
- Works locally, sometimes gets synchronization error.
- Should also work online, but I guess performance will be very bad, as it works on about 50 FPS.

Check it out ;)

Download here, copy to your Ragdoll Masters folder, and run “Ragdoll Masters v3.1 Online.exe”.
Also note that it works only with v3.1.

Matteo, the author of the game, has taken offense because I wrote a keygen for his games, banned me and deleted my topic.
Oh well -_-’

rar Ragdoll_Masters_Online.rar (13.01 KB)

Posted in Releases, Software at February 25th, 2009. 5 Comments.