IDA-Pro and Pascal: Sets & Propogating Types

In Pascal there is the Set object, that you set (n<256) bits and then can later check if bit n is set or not. Sort of like a bool array.

When you decompile a DOS Pascal program the IDA-Pro Flirt signatures will find the Set functions, in this example we will focus Set::MemberOf

arg_0 is the Set object and arg_4 is the byte we are checking to see if it’s set. When this code is called it looks like this:

and the byte_152FE location is an unknown mess like so:

as we know this data is a Set object, it would be nice if it was represented as such. Now we could Declare this a structure varaible (Alt-Q) by hand and then rename it. This works for a few small cases, but in the Gold Box games, Sets are used to manage lots of things so there are too many of them. The best trick here is to get IDA-Pro to do the work for us.

Firstly I assume you have creates a Set structure (needed for the above manual process) that is 0x20 bytes long.

Now go back to Set::MemberOf and Associate a prototype to a function (Y) and change the prototype from:

int __stdcall far Set__MemberOf(__int32 _set);

to:

int __stdcall far Set__MemberOf(Set* set, char);

and tada the code call Set::MemberOf is tidy:

and all the Set data blocks are typed for us also:

Magic!

Microsoft ‘Really’ Ad

Microsoft has a fantastic new ad ‘Really’ for their new mobile device OS (ht Andrew Lark).

It pushes a current trend to the extreme, and their claim of difference is “in and out faster”. Really?

I get absorbed in my mobile device not because it takes so long to do stuff – Microsoft’s claim – but because I enjoy the task I’m doing with the device.

Now the painful reality is that after Michaela also got a mobile device, we both are more inclined to pick them up and listen to podcasts/play solitaire, when everybody else is busy. I guess I did it before I just didn’t notice the impact.

The problem this induces is once the original people finish their task, they see others engaged in their own thing and therefore find another solo task. The technology that helps fill in the little gaps and avoid watching boring TV is actually also keeping us apart.

After noticing this, I find I need to-do nothing more, to allow a better something to happen, which feels counter intuitive.

Willow Hill Rocketry Group – 9th Oct

Today Jacob and I attended the Willow Hill Rocketry Group’s first launch day for the season. 21 Rockets were fired today from class A to class I motors, very fun to watch.

Here’s a small SD Outlaw rocket with a C motor in it:

And some photo’s

It was a very fun couple of hours, and at the next flight day, some even bigger rockets will be launched. The big rockets of today’s launch were not photographed due to battery mismanagement.