Journal Issues

CodeBreakers Journal

Statistics

Members: 1928
News: 293
Web Links: 1
Visitors: 5258093

Who's Online

We have 18 guests 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 3 (1998-2001)
Issue 3 (1998-2001)
    ___ .___     __) (__    _____  ______                                   ```   
._____|   ____  ___/__.)   /.) _  (_.                                  \  
|     |   _   |_      |   / |        |CE                                 ,
.=|_____|___)___|(_______|______|        |===============[ Introduction ]===.
'================================|        :=================================='
:        .                          by mammon_

The first thing that you will notice about this issue --well, that it is late-- will probably be the section headers designed by iCE. I had to add a top/upper left border to them [the horizontal and slanted lines] in order to make them standout when scrolling though a 100K file such as this one, but other than they are all his: comments, etc welcome.

I don't have much to say about this issue: I went overboard with the NASM stuff this month as I have been doing a lot of 'research' work in that area recently; my articles have been supplemented with Tamas Kaproncai's Win32 NASM pointers.

Iczelion and XBios2 have both produced --as usual-- 2 quality articles this month, Iczelion's based on his win32 asm tutorial 'the MASM way', and XBios2 once again continuing to replace C with assembler.

+Spath. has produced an excellent article on SPARC assembly language; I was hoping to debut the 'other CPU' scene with a MIPS article I had planned but it looks like +Spath has beat me to it.

On a similar note, I mentioned on the Message Board wanting to start a Virtual Machines column. Cynical Pinnacle has started the column off this month with an article on programming the Java VM in its native 'assembly language'; in subsequent issues I and perhaps others will be adding articles here as well.

A final note, I have not come up with a challenge for the next issue; anyone with good ideas is welcome to post one to the Message Board or to the APJ email address.

Enjoy the mag!

_m


X-Windows in Assembly Language: Part II
X-Windows in Assembly Language: Part II

OK, let's face it: you've seen the tedium of XLib, one has to use widgets in order to get any programming done in XWindows. 'But this is assembly langauge', the masochist might point out. 'Aren't widgets a little Visual-Basicy?'

Not in the slightest. A widget is simply a C++ class exported for use --much like the windows API functions, only a little more object oriented...maybe a good comparison would be MFC or VCL. Xt, or 'X toolkit Intrinsics'...
Read More >>


C string functions: introduction, _strlen
C string functions: introduction, _strlen

String handling in assembly is - anyway - a difficult subject. There are few string-oriented x86 opcodes, and most of them are slow. There is not a standard library providing even basic functions. There is no string specific syntax in assembly, like C's printf('hello world') or, even worse, BASIC's a$=b$+'hello'. In a few words, if easy string-related programming is your goal, maybe you should consider PERL, or another text-manipulation language.


Read More >>

C string functions: _strcpy
C string functions: _strcpy

In this article we will examine two 'modern' _strcpy functions, found in MSVCRT.DLL and Borland C++ Builder library. Those functions are (supposed to be) optimized for Pentium processors. If you're not familiar with optimization for Pentium processors, I suggest you read the document on Pentium optimization by Agner Fog (http://announce.com/agner/assem).


Read More >>

An introduction to SPARC assembly
An introduction to SPARC assembly
The goal of this article is to introduce SPARC v8 architecture and SPARC  assembly ; I hope it can also constitute a good introduction to RISC philosophy. 
Read More >>

NumFactors
NumFactors
;Summary: Routine to determine the number of factors for a 16-bit value
;Compatibility: All DOS versions/8088+ instructions
;Notes: 22 BYTES               Input: AX = Value to check for number of factors
;       * If CX is 2, check value in AX is prime.
    mov bx,1        ;Test=1 (Test is the testing value of each theoretical
                    ;factor of AX, from 1-AX).
    xor cx,cx       ;Count=0 (Count is running total with # of factors for AX).
ChkFctr:
    xor dx,dx
...

Read More >>

NASM specific Win32 coding
NASM specific Win32 coding
I will introduce the win32 coding and I will focus on the NASM specific part.

Read More >>

Extending NASM
Extending NASM

Programmers transitioning to NASM from a commercial assembler such as MASM or TASM immediately notice the lack of any high-level language structures -- the assembly syntax accepted by NASM is only slightly more sophisticated than what you would find in a debugger. While this has its good side --smaller code size, nothing hidden from the programmer-- it does make coding a bit more tedious.


Read More >>

Keyboard Input
Keyboard Input
We will learn how a Windows program receives keyboard input.

Read More >>

An Intro to the Java Virtual Machine
An Intro to the Java Virtual Machine

For awhile C/C++ reigned supreme and nothing challenged it but then along comes Java, creating a splash, and causing outright corporate warfare to claim right of ownership. Strangely enough the result of this war has not been dead bodies but buckets and buckets of API's all given away for free. Just stop by and take a look at Java's Official Website (http://java.sun.com) and what do you find a good development kit with compiler, symbolic debugger, disassembler, complete too...
Read More >>


Convert ASCII hex to binary in 6 bytes
Convert ASCII hex to binary in 6 bytes
The Challenge
-------------
Write a routine for converting ASCII hex to binary in 6 bytes.

Read More >>

More about Text
More about Text
We will experiment more with text attributes, ie. font and color.

Read More >>