Bryant Keller's Homepage

Bryant Keller


About Bryant Keller

I am probably most recognised as the creator of the NASM32 (now NASMX) project and author of many underground tutorials written in the late 1990's under the alias "Synfire". I am a Georgia resident and student at Georgia Northwest Technical College, due to graduate in May 2010. I was born on April 27th of 1981 and have spent the majority of my life near or in front of a computer.

I have worked as a professional software engineer, a freelance application developer, a freelance systems software developer and I am now working on and off as an IT consultant for various small-businesses throughout north Georgia.

My technical background includes Linux system administration, Microsoft network administration, computer and information security, and software development. I'm currently fluent in C/C++, Intel Assembly, PERL, BASIC, and various mark-up, database, and scripting languages.

To date, I have worked on hundreds (if not thousands) of software projects and have kept active in the IT community by administrating and/or designing various websites, moderating multiple technical discussion forums, and aiding in the development of many open source projects.

For the most part, I tend to keep to myself and only involve myself in projects which I find to be either good sources of education for myself and others or monetarily profitable. I do, however, follow a strict code of ethics which, amongst other things, makes me a large advocate against the piracy of software. This in itself draws much confusion about me as I've been given a reputation as a hobbiest reverse engineer. However, my view on the subject of reverse engineering is fairly simple. I do not believe in removing functionality from any product and I will not add functionality to any project without explicit permission from the author(s).

Although I may seem to be a difficult person to get along with, I am actually a fairly friendly and loyal person. My psychological type is that of INTJ which means that I tend to judge people based on their actions and applicable skill level, not so much on the titles or ranks they hold. I'm not impressed by a PhD, but show me well thought-out project you've made and I'll hold great respect for you. My years of programming has made me a very mission critical thinker and I tend to over analyse things to the point in which jokes and humour, short of sarcasm, seem to fly over my head at times.

I have created this site as a way for people to get to know me and the things in which I find interesting. If you share the same interests I'm sure you'll want to bookmark this page, however my interests are fairly specialised and tend to be on the "geeky" side so nobody will blame you if you find this site to be a bit bland/boring. None the less, I hope you enjoy yourself and wish that you return regularly to read any new updates I can offer.

Regards,
Bryant Keller



On The Web

I participate on many web forums and take part in many development projects all over the Internet. Instead of discussing each one in detail, I decided to simply give you links to each of these places and a short description of my affiliations.

  • The ASMCommunity Website

    I first joined the ASMCommunity forums, while it was still going by the name "Win32ASMCommunity", back in May of 2004 on the request of a dear friend of mine, Homer. Since that time I've became a site moderator and a regular contributor under the handle "Synfire".

  • The Netwide Assembler

    Although I've never joined the development team, I've been a large supporter of the Netwide Assembler for many years. I've contributed various bug fixes and initiated the development of a complex macro/include library to help expand the user-base. More recently, with the addition of an on-host SMF forum, I've become a forum moderator and very active user at nasm.us.

  • My Radio Station

    I listen to quite a lot of music while I'm on the computer. Because of this I decided to setup my own Last.Fm Radio Station. If you want to listen to what I'm most likely listening to, you're more welcome to visit and jam out with me.
    WARNING: I listen to a lot of metal music. lol

  • DynatOS

    I honestly haven't done a whole lot on this site in a quite a while. I did the initial layout for this site and Keith keeps me updated on the development of DynatOS, and I am looking forward to being a alpha/beta tester. The project is developed and managed by Keith Kanios as a 64-bit operating system written entirely using the Netwide Assembler.

  • Donkey's Stable

    Edgar Hansen is the creator of many very useful Assembly language projects which can all be found at this website. I have supported and used his GoASM Header Project since the early days if its creation and find its layout, which mimics that of the Microsoft Platform SDK, to be very user friendly and makes this project stand out above the rest.

  • Jeremy Gordon's GoDev Tools

    When I'm programming on Windows you can almost guarantee I'm using either NASM or this amazing developer's kit from Jeremy Gordon. On this site you can find an include set which I created called Win32A for simplified calling of Windows API routines. This project was superseded by Edgar Hansen's GoASM Header Project (which I use and attempt to contribute to when I have the time) shortly after its creation. Although Edgar Hansen's Header Project is far more advanced, Jeremy continues to host a link to the original include set I created.

  • My Facebook Page

    Despite the fact that I'm not a huge fan of social networking sites, I created a Facebook account in order to stay in contact with family and friends whom I no longer can regularly keep in touch with. Although I'm not heavily active, only dropping in once every few days, I welcome anyone who wishes to add me as a friend and you are more than welcome to contact me on my wall for any off-topic conversations.

  • My Store

    Rather than blatently taking donations I thought I would let people have a way to contributed to the site while getting something in return. I've posted an Assembly.ath.cx Store online at Zazzle so you can find the product you like and the proceeds go toward helping to run this site.



Projects and Code Snippets

As I mentioned above, I wouldn't be myself if I didn't have some form of project going on. Most software projects I work on are developed in Intel Assembly language, however I do use quite a bit of C/C++ when time is precious. The following list contains projects and code snippets which I have created and released to the public. Some of these projects are no longer actively developed, but most are worth a look none the less.

  • The NASMX Project

    I originally created the NASMX project after a discussion in a Yahoo! Chatroom on the usability of the Netwide Assembler. The argument being made to me was that assemblers such as MASM and TASM have grown far beyond the capabilities of NASM due to their ability to use various high level constructs; like the .If, Invoke and Proc directives in MASM and the advanced OOP features of TASM's STRUCT directive. As a proof of concept in the abilities of the NASM macro engine, I developed the initial NASM32 release which simulated many of the high level features of MASM. Over time this grew into a complete 32-bit Windows Assembly development kit. After some time, despite the growing popularity of the project, I began to get bored with it and felt that if the project was going to survive I should hand it off to someone more active in its development. Keith Kanios took over the project and I worked in the background only doing minor updates. The project grew into what's now known as NASMX and further supports 64-bit Windows and 32-bit Linux operating systems.

  • Netwide Assembler OOP Support

    This is a work in progress OBJECTS.INC file I've been working on. It adds support for creating and using classes in NASM. It now supports inheritance and virtual method overloading. There might be a syntax change in the works for the next release.. we'll see.

  • The Pelles C IDE - PoASM Wizard

    As many are aware, I'm an avid Pelles C and PoASM user. Pelles C IDE has a very clean user interface and a really nice source level debugger built into the IDE. This project was something I original did to support automatically generating simple PoASM projects using the Pelles C IDE. This wizard supports "Dialog As Main", Single Document Interface, Win32 Console, Dynamic Library and Static Library templates for PoASM in Pelles C IDE. I will add more support as I find time to work on it.

  • The K32Base Library

    A well known trick on 32-bit windows for reducing code size is to design your program in a manner which does not include an import table. This works by using the PEB structure located in the FS register to access routines automatically loaded by the PE loader. The K32Base Library does exactly that, allowing you to write very small and relocatable code to reduce your executables size down at least 512-bytes (the minimum size of an import table). The project is no longer developed on since it was found that, unlike practically every other 32-bit Windows OS, Windows 2000 Professional actually validates the existence of an import section, without it Windows 2000 Professional will refuse to run the program.

  • GNU/Linux Assembly Examples

    I was originally going to write a tutorial on Linux NASM Programming, however other things have have come up and that project has been scratched. However, I did write quite a bit of example code to go along with the tutorial and I thought I would post it here for people wanting to learn to use the Netwide Assembler under GNU/Linux.



Essays, Articles and Publications

I like to try and actively write essays and articles in order to help others learn and also to solidify my knowledge of a subject. In some cases these works get published but in my experience that's fairly rare. Below are a list of essays, articles, and published works which I have written and are freely available to the public.

  • Identifying Malware: Common Threats Against Computer Security

    This article was my first published work after taking a very long break from writing tutorials many years ago. "Identifying Malware" attempts to clear up the confusions that many people have in regards to what malware is, where it came from, and how to get rid of it. Unfortunately, I was under tight time constraints so the article was not cleanly formatted and it lacks the "technical touch" which I have previously been known for. This article does, however, inform the reader in a fairly short and easy to follow manner.

  • Fundamentals of Development

    This article is in response to the increasing number of questions regarding optimising code through microprocessor specific "tricks" to reduce execution time. Although, as an Assembly Language programmer, I commonly make use of such "tricks" myself, I am a firm believer in creating optimised algorithms first, then optimising the underlying code. I think many people are either unaware of this or have simply forgotten the developmental process. Therefore, this article covers the fundamental process of developing optimal, production quality, software.



Online Resources

Whether I'm working on school, work, or hobby projects I find the Internet to be an invaluable source of information. When I first migrated over to the Internet from local bulletin board systems in Fall of 1994 I found the Internet to be a strangely organised and difficult network to navigate. With the later advances in web directory technology and advanced search engine features, the Internet became one of my most used resources for learning, communications, and entertainment.

Below is a list of web sites which I have found particularly informative and useful over the past sixteen years of Internet usage. I pass these along to you in hopes that you too will find a great number of uses for them in your life.

  • GALILEO

    The GALILEO online research library is one of the best sources of information for students in practically any major. Given access to this site, you can quickly search essays, reports, news and magazine articles from accredited sources. I was first introduced to GALILEO while attending school at Georgia Northwest Technical College and have found it to be the first stop when researching even non-course based information.

  • Project Gutenberg

    Project Gutenberg began in 1971 from the efforts of Michael Hart, inventor of the first electronic book (or eBook). This project grew into a full fledged, FREE library of electronic books. Much of the research I did in college required books which I could not afford (like Ulysses and Time Machine) but were no longer under any legal copyright restraints. Project Gutenberg offers these free LEGAL books to all people through the use of their extensive Online Catalogue.

  • Anger Fog's Homepage

    Having been an Assembly language programmer for many years, I have found Agner Fog's web site to be a great source of software and information. Although he is most widely known for his Optimisation Reference, probably my favourite part of his web site is his personal blog where he discusses many advancing technologies and the results of various performance tests which he has done.

  • The Linux Documentation Project

    After having become a regular on the Yahoo! Chat network, a friend and I had a discussion about the affects of going several days without sleep. Somewhere along the course of this discussion, a bet was made that I couldn't read the entirety of the Linux Documentation Project's collection of howto's and tutorials, one after the other, without sleeping. This turned into a five day reading session in which I was asked questions regarding the content of the articles which I had already read. This experience taught me two things; 1.) staying awake while staring at a CRT for five days can only be compared to hitting yourself in the head with a crowbar and 2.) The Linux Documentation Project is probably the most in-depth resource for users of the Linux operating system on the Internet.

  • Google

    The Internet would not be what it is today without the Google Search Engine. Google has become so popular that the site has become synonymous with Internet searches. I was first introduced to Google during the later part of 1999 shortly after it's offical release. At the time, the most valued part of the site was it's (nearly complete) web directory which allowed for finding web sites based on subject AND relationship to other web sites. This is a feature that other web directories such as Yahoo! Directory was lacking at the time and truly revolutionised the Internet. I'm certain you probably already know about Google, however this list would not be complete without it.



Contact Information

If contacting me by becoming a regular at the various places I hang out is not an option for you, then you might try finding me at some of the following locations. These are the methods of contact in which you can assure the most immediate response from me.

  • Send Me An Email

    The majority of my communication is done through email. Call me old school but there is nothing I like better than seeing, or writing, a professional looking email. Yes, I do hang out on various real-time communication networks on occasion, but I check my email account every single day.

  • Visit My Blog

    Do I really warrant my own weblog? Probably, not. But I wanted one anyway and it gives me a place to vent my ideas and converse with my visitors.

  • MSN Messenger

    Most of the time Pidgin automatically loads when my computer comes on, so if you have an MSN Messenger account, you can send me a message and most likely get a response. The down side to this is that, when I'm busy, I won't answer any instant messages.



Message of the Day
I've always questioned Picasso's intentions. Albert Camus once said "A guilty conscience needs to confess. A work of art is a confession.", it leads to question what in the world that man got himself into.

Copyright © Bryant Keller, 2010.
All rights reserved.



Free web hostingWeb hosting
Web Hosting