Statistics

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

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 5 (1998-2001)
Issue 5 (1998-2001)

::/ ::::::.
:/___:::::::.
/| ::::::::.
:| _/:::::::::.
:| _| ::::::::::.

:::_____:::::::::::..............................................INTRODUCTION
by mammon_

I suppose I should start with the good news. A week or so ago Hiroshimator emailed me for the nth time asking if I needed help with the journal as I have yet to get one out on time. I relented and asked if he knew any listservers; one hour later he had an account for APJ set up at e-groups, specifically:

{http://www.egroups.com/group/apj-announce} One of the greatest obstacles to putting out these issues -- processing the 300 or so subscription requests that rack up between issues -- is now out of the way for good.

The articles this month have somewhat of a high-level focus; with the COM and Direct Draw by Bill Tyler and X-Caliber, respectively, as well as Chris Dragan's classic work on exception handling and Jeremy Gordon's treatment of windows callbacks, this issue is heavily weighed towards high-level win32 coding. Add to this Iczelion's two tutorials and my own win32-biased linked list example, and it appears the DOS/Unix camp is losing ground.

To shore up the Unix front line, Jan Wagemakers has provided a port of last month's fire demo to linux [GAS]. In addition, there are A86 articles by Jan Verhoeven and a general assembly routine by Laura Fairhead to prove that not all assembly has to be 32-bit.

And, finally, I am looking for a good 'challenge' columnist: someone to write the monthly APJ challenges [and their solutions] so that I can start announcing next month's challenge sooner than next month...

Now at last I can sleep ;)

_m


Structured Exception Handling under Win32
Structured Exception Handling under Win32

Structured Exception Handling is a powerful feature of all Win32 platforms that allows a program to recover from any critical errors like BOUND, divide overflow, page missing or general protection fault. It is documented only for C-level usage (try-except/finally syntax), and no documentation for low level languages exists. Therefore I will try to show how to use it.


Read More >>

OBJECT
OBJECT

Read More >>

Formatted Numeric Output
Formatted Numeric Output
Here I am going to present you with a very useful routine for numeric output. I have been using it myself for sometime and now I think it is almost perfect.

Read More >>

Min
Min

Read More >>

Dumping Memory To Disk
Dumping Memory To Disk
This piece of code allows you to make a memory dump of any region of conventional memory (i.e. below 1 Mb) to a diskfile.

Read More >>

Max
Max

Read More >>

Linked Lists in ASM
Linked Lists in ASM

Assembly language is notorious for being low-level; to wit, it lacks many of the features in higher-level languages which make programming easier. In the course of my work in the visasm project I have put quite a bit of time into working on exactly which higher language features are important and which, in a nutshell, are swill.

One of the areas in which assembly language is lacking is the use of dynamic structures. Pointer manipulation in asm is simple and clear for up to one level...
Read More >>


Fire Demo ported to Linux SVGAlib
Fire Demo ported to Linux SVGAlib

In APJ4 there was a little nice fire demo written in DOS assembly language. I have ported this program to Linux assembly language. It is written in the AT&T-syntax (GNU assembler) and makes use of SVGAlib.

My main goal of porting this program to Linux was to show that it can be done. So, I have not optimized this program. For example, things like 'call ioperm' can also be done by making use of int 0x80; quite possibly making use of int 0x80 will make the program smaller...
Read More >>


How to use DirectDraw in ASM
How to use DirectDraw in ASM

Well, there has been quite a large demand for this essay, so I finally started writing it. This essay will show you how to use C++ objects and COM interface in Win32ASM, using DirectDraw as an example.

Well, in this part of the Win32 API, you will soon find out how important it is to know C and C++ when you want to use an API written in these languages. Judging from the demand for this essay, I think it will be necessary to explain a bit of how objects work in C++. I will not go too ...
Read More >>


Dialog Box as Main Window
Dialog Box as Main Window
Now comes the really interesting part about GUI, the dialog box. In this tutorial (and the next), we will learn how to use a dialog box as our main window.

Read More >>

COM in Assembly Part II
COM in Assembly Part II

My previous atricle described how to use COM objects in your assembly language programs. It described only how to call COM methods, but not how to create your own COM objects. This article will describe how to do that.

This article will describe implementing COM Objects, using MASM syntax. TASM or NASM assemblers will not be considered, however the methods can be easily applied to any assembler.

This article will also not describe some of the more advanced features of COM suc...
Read More >>


Child Window Controls
Child Window Controls
In this tutorial, we will explore child window controls which are very important input and output devices of our programs.

Read More >>

Standardizing Win32 Callback Procedures
Standardizing Win32 Callback Procedures
This short article describes my preferred method for coding CALLBACK procedures in a large assembler program for Windows 32.  First I describe what Win32 callback procedures are, and then get down to some code.

Read More >>

Writing Boot Sectors To Disk
Writing Boot Sectors To Disk

In my previous article I showed how to make a private non-bootable bootsector for 1.44 Mb floppy disks. Unfortunately, there was no way yet to write that non-bootsector to a floppy disk....

Enter this code. It is the accompanying bootsector writer for floppy disks. It assumes that your A: drive is the 1.44 Mb floppy disk drive and I dare say that this will be true in the majority of cases.


Read More >>

Binary-to-ASCII
Binary-to-ASCII
The Challenge
-------------
Write a routine to convert the value of a bit to ASCII in under 10 bytes, with no conditional jumps.

Read More >>

Abs
Abs

Read More >>