Journal Issues

CodeBreakers Journal

Statistics

Members: 1927
News: 293
Web Links: 1
Visitors: 3931726

Who's Online

Damn Vulnerable LinuxDamn Vulnerable Linux (DVL) is a Linux-based (modified Damn Small Linux) tool for IT-Security & IT-Anti- Security and Attack & Defense. [CLICK HERE FOR MORE INFOS! ]

Featured Conference Video

T16-Recon2006-Joe_Stewart-OllyBonE.gif OllyBone - Semi-Automatic Unpacking on IA-32. View the conference video here!
Home arrow Assembly Programming Journalarrow Issue 6 (1998-2001)
Issue 6 (1998-2001)

Customarily I'll start with the bad news: this issue is about a week late, primarily because I had forgotten about the two Win32 articles X-Calibre passed on to me a month or two ago. The good news, however, is that there may be a December issue; currently I have about 5 or so extra articles that threatened to bump this issue over the 200K mark. Evenutally I may have a chance to be late on a monthly basis...

This issue has a bit of a 'back to the basics' feel about it. Packed inside are articles dealing with some of the 'classics' of assembly: CPU identification, graphics, and the ever-popular Game of Life. The disassembly of the Ambulance Car virus also has an old-school feeling to it, hearkening back to the old days of DOS and com files.

Additional highlighs include X-Calibre's 'bending windows to your will' Win32 articles, two excellent chip programming articles from Jan, utility routines from Laura and myself, and of course my usual attempt to defend assembly as a viable programming language for the Unix environment.

Enough commentary; time to get this mag on the road!


WndProc, The Dirty Way
WndProc, The Dirty Way

Read More >>

Timing with the 8254 PIT
Timing with the 8254 PIT
Some time ago I saw a note on the mailinglist from someone in need for a flexible timer function. For this, there are several concepts.

Read More >>

Programming the DOS Stub
Programming the DOS Stub
As you may (or may not) know, there is a piece of DOS code still in every Win32 executable file. This piece of code is referred to as the 'stub' and ensures that the Win32 program won't cause a crash when run on a DOS system. It just prints the familiar 'This program can not be run in DOS' message and exits.

Read More >>

Splitting Strings
Splitting Strings

Those familiar with Perl will undoubtedly have used its split() function, which takes a single string and splits it into multiple strings or into an array, based on a delimiter character specified in the call. Typical invocations of split() would be:

     ($field1, $field2, $junk) = split(':', $line);
@array = split(' ', $line);

Read More >>

Processor Identification
Processor Identification

Being able to identify the processor in which your program is running, can be a very useful feature, if not to ensure that your program will work on a wider range of computers, at least to provide minimum compatibility and guarantee it not to crash on some processors.

The first part of this article explains how to distinguish between older 80486 and lower processors by checking for known behaviours, while the second part (written by Chris) takes it one step forward, explain...
Read More >>


Assembling for PICs
Assembling for PICs
Below is a piece of assembly language for the MicroChip PIC processor. This particular program will flash some LED's and activate some relays based on the status of some control-inputs. The target MCU was the PIC 16C54, one of the most simple chips in that range.

Read More >>

String to Numeric Conversion
String to Numeric Conversion
Here I present you with a library routine that scans a value from a string and converts it to an integer. It is very useful, not only when you have to convert string->value but also if you are parsing and want to recognise a numeric token.


Read More >>

Using ioctl()
Using ioctl()

One of the most famous Unix maxims reads 'everything is a file'; directories are files, pipes are files, hardware devices are files, even files are files. This provided a transparent means or reading and writing hardware or software constructs such as modems and sockets; yet the lack of interrupts or device driver routines is sometimes confusing for those not used to Unix programming. In linux, handling device parameters through the character and block 'special file' in...
Read More >>


Programming for the one and only universal graphics mode
Programming for the one and only universal graphics mode

If you need to write a graphics routine that has a reasonable resolution and which is nearly always present, there is just one choice: mode 12h or the well known 640 x 480 x 16. This mode is the highest resolution mode which is always available in all VGA cards.
800 x 600 is better but it either needs a VESA driver installed or the user must himself figure out how to switch the machine to that mode. Not an easy task for the majority of "experienced Windows users" (isn't thi...
Read More >>


Ambulance Car Disinfector
Ambulance Car Disinfector

Since I provided a ready-to-be-assembled virus in the "'Ambulance Car' Disassembly" article, I decided to also write a bonus article with a basic disinfector for it. Please note that this disinfector doesn't locate and clean all existing 'Ambulance Car' strains, though it does work on more than half of the strains I have (thanks Cicatrix). It is only intended to work with the strain I provided, so no assurances are given as to whether it...
Read More >>


Conway's Game of Life
Conway's Game of Life

I had the idea for this one day after stumbling upon a "gem" that somebody had written to play life. It was small and fast and reminded me of years ago when I had written many versions of this for the BBC Master 128 (my love lost). Since I had never written a version for the PC I thought that I would, and ended up spending some hours trimming off the bytes until it is now :- 156 bytes long. I must admit if it was not for the program that I found, this program would have been M...
Read More >>


Ambulance Car Disassembly
Ambulance Car Disassembly

This virus has definitely my favourite payload of all times. I just love seeing that little ambulance run across the screen with a 'siren' playing at the same time. Other than that, the virus itself isn't much of a thing. Don't forget though, that it is dated back to at least 1990.

It is a non-resident .COM infector, and each time an infected file is run it will attempt to infect two files (be it in the current directory or in a directory locate...
Read More >>


Absolute Value
Absolute Value

Read More >>