News.

26th August 2001:General News

I eventually get around to answering emails ;P if you havent heard anything off me recently. I thought it about time for a news update, so in summary form here it all is:

No progress whatsoever on Borg at the moment, due to other projects taking its place.

Aspect folded but is due back in a couple of days time.

I developed the crypto challenge site at Hobbiton but the web host has had loads of problems and it is currently all down.

At the moment..... well, I'm messing with the Quake engine, and have possibly joined a team developing a new game based on the Quake engine.

So there you have it....... oh, and RL is just chaotic at the moment, so time is limited whatever I do :(

17th May 2001:General News

I have recently taken on helping with Aspect, as Caesum. In addition to this work I have made some decisions regarding Borg2. There will be no further releases of Borg2 for some time. I have decided to begin work on Borg3.

The main reason behind moving towards Borg3 is that I have come to the conclusion that 1/ My C++ skills have improved a bit since I first started Borg2 and I am no longer as happy with Borg2 as I once was. 2/ I have come to the conclusion that there are some fundamental architectural problems with Borg2 that require too much work to correct. 3/ There are some fundamental changes that I would like to make.

Current thinking on Borg3 is towards a more OOP program, but with some extensive use of DLL's and a macro scripting language. I want to move all processor related code to individual dll's.... I want a macro scripting language, and that Pascal compiler I started work on some years ago is just itching to be looked at again.......

So at the moment my decision is to redesign Borg..... wow, did I say redesign..... perhaps that should be design.... from the ground up. This will be done over the next few weeks, so as you can expect it is going to be some time before the release of Borg3, but I am patient ;)

At this point if anyone wants to submit files with changes/bugfixes to Borg then please do so and I'll just put them up here on the page, or if anyone wants to continue Borg and develop their own page then let me know and I'll provide a link.

I have uploaded the latest version.....tentatively called 2.27 but it is just the state of the project on my HD today, as I write this :)

From version.txt:

  • File save as text/asm now use new ofn functions in common.cpp.
  • Extra debug function added to debug.cpp.
  • Changes to file loading, now checks for zero size file.
  • Bugfix in display code re looping at start of segs in display output.
  • Bugfix - export code outside known data area was causing a crash.

    5th May 2001:Puzzles

    I just uploaded the sourcecode to puzzle1 along with a mathematical solution by alf. Get it here.

    23rd April 2001:Borg 2.26

    I have uploaded the Borg 2.26 source and version. A few bugfixes and more better compilation are the basis of this release. Nothing major here... but I apologise for the errors from the last version that have been fixed....

  • Bugfix re string printing on unicode and dos style strings.
  • Bugfix re some sib formats.
  • Bigfix re string resource id number generation.
  • Changed delfunc and compare to virtual functions which seems to have cured compiler problems.

    9th April 2001:Borg 2.25

    Just uploaded a hastily bugfixed version of Borg 2.25 due to fileopen problems (again). Thanks for spotting that Reus!

    8th April 2001:Borg 2.25

    I have uploaded the Borg 2.25 source and version. A few bugfixes and more consistent output for assemblers are the basis of this release.

  • revisited header includes and cleaned up a few unnecessary includes.
  • bugfix in finding the current line.
  • bugfix in asm output for uninitdata. db ??
  • db now has h after hex numbers.
  • rep/repne and lock are now treated as proper prefixes rather than separate instructions.
  • sib indexes now appear in separate []'s. eg [eax][ebx*4].
  • ds has now been changed to db, with hex values for non-printing chars.
  • a lot of changes on output to enable easier reassembly of saved listings. 'Dword ptr' and 'Word ptr' are now used more, for tasm compatibility. all hex values starting with alphas are now preceded with zero. all pointer types should now be recognised by assemblers (byte, word, dword, fword, qword, tbyte are used in place of double-real, etc).
  • fld freg now shows only one argument, and fxch.
  • instructions are now added to the database outside the decodeinst instruction as this was leaving corrupted databases in cases where prefix bytes made the instruction straddle comments.

    6th April 2001:Borg 2.24

    I have uploaded the Borg 2.24 source and version. A quick release to fix a couple of really annoying bugs which meant that database files were not working in the last version. I decided to at least include a couple of changes, of which the autonaming of xreffed locs enables asm output to reassembled by people more easily. This still needs a lot of work doing to it though :)

  • Just added a makefile...... should remember to include and update it with each version now.
  • More common routines to help with interfacing to common dialogs.
  • Some structs are now internal to modules, for example taskitem, as nowhere else needs to know about the data structure.
  • decrypter now has read_item and write_item functions and data structure has been internalised. Similar changes to relocs. Some changes to data.cpp along the same lines.
  • default location naming, for example loc_00401000 for xreffed locations.
  • comments now appear before names.
  • locs are now printed on all lines.
  • bugfix re 2.23 problems with database files not working.
  • bugfix re 2.23 not working on NT.

    29th March 2001:Borg 2.23

    I have uploaded the Borg 2.23 source and version. It is more of a source release than any changes to Borg itself, along with a few bugfixes following the last version. I am now having problems with MSVC compilation once again :) I normally use Borland C++ and so I do not have access to the MSVC compiler, but the last version had problems with MSVC and templates, although Borland was fine with it. I have now fixed these problems and managed to get hold of MSVC for a short while. I could not get the Dialogs to show up properly though, so if anyone has any advice for compiling under MSVC then I'll add it here. Personally I prefer Borland :)

  • deleting xrefs now calls window update to update the number of xrefs.
  • updated the segviewer to use findnext.
  • added between(lwb,upb) to lptr class.
  • changed findseg to always leave the iterator pointing to the next segment.
  • cleaned up search code. bugfix - will now find a string if it exactly contains the last byte of a segment.
  • introduced more macros for decoding convoluted structures.
  • moved dialogs from decrypt.cpp to user_fn.cpp
  • corrected a few minor problems, and removed stop/start of thread from setting block extents.
  • commented out the compare function from the list class as it was causing MSVC problems with compilation. MSVC is still problematic though, and I recommend Borland C++ 5.00.
  • renamed dlg_ldopt.* to dlg_ldop.*, 8 chars is better for my batch files!
  • added a short tutorial on using Borg, an introduction for newbies to Borg :)
  • dialogs now return true on processing messages except wm_initdlg which returns false.

    23rd March 2001:Borg 2.22

    I have uploaded the Borg 2.22 source and version. It is more of a source release than any changes to Borg itself. Every routine is now commented. I have done a lot of reworking of the code towards making it more simple, clearer and stable. There is still a lot of work to be done, but I thought I'd upload it at this stage for people to play about with. In some areas I have not really started to rework the code into something better, but in other areas it is looking pretty good.

  • Reworking of SYS file support.
  • All functions now have brief comments in the sourcecode, also did some reformatting of some statements.
  • Removed a lot of colour message processing from dialogs and windows, all the WM_CTLCOLORSTATIC, etc. I think this was in originally due to an older compiler and the development version of comctl32 which was with it.
  • Now using macros in some areas where complex typecasts were common (lists and disasm.cpp for example).
  • More basic functions added to simplify coding in some areas, eg disasm.cpp.
  • Reworking of nextseg and lastseg functions and calling code.
  • Formed help.cpp and registry.cpp to take some functions which need less updates.
  • Added CenterWindow(HWND) to support functions and recoded various Dialogs.
  • Removed some redundant code from Dialogs.
  • BOOL,FALSE and TRUE are now bool, false and true.
  • list.cpp is now a template, and is contained in list.h. Removed a lot of unnecessary casting and most of the macros.
  • deletion and compare functions for the lists are now part of the list class and overridden as required.
  • user_dlg.cpp file has been created for user dialogs. This will contain dialogs and code for viewing things, naming things, etc, which helps separate primary thread and secondary/engine thread code out. The viewers are now more disocciated from their classes. Consequences of this are moving exports, imports and names to the gname class and deleting the exports.cpp, exports.h, imports.cpp, imports.h, names.cpp and names.h files.
  • demangle has been moved from the gname class to general functions.
  • naming locations is now directly interfaced to the engine and the secondary thread is stopped rather than going through the scheduler.
  • set range top and bottom now stop the thread for processing.
  • user_dlg routines now enforce stricter stopping and starting of the secondary thread.
  • range viewer moved to user_dlg.cpp
  • xrefs viewer moved to user_dlg.cpp and repeater made a global variable.
  • added separate parsing routines for different searches and cleaned up the search code.
  • added database.cpp for routines for database control of loading and saving.
  • changed fileload to exeload with the intention that exe loading routines will be split up more. added dlg_ldopt which deals with dialogs for file-open for new files and setting of options. the routines here call the appropriate loader.
  • all load and save routines for databases are now in database.cpp and extracted from classes. This has meant making more class variables public (to be looked at later). database.cpp only exposes loaddb and savedb procedures to the rest of the program.
  • naming locations, adding and changing comments now go through the scheduler instead of the primary thread.
  • repeater variable for dialog boxes has been dropped. dialogs must send a request through the scheduler instead. the request when processed by the scheduler simply posts a windows message back to the main window to reshow the dialog.
  • xref deletion now goes through the scheduler.

    11th March 2001:News Update

    Is it really 2 months ? Gosh, time flies. Anyway, the other site is practically built, with 5 levels of challenges done. Its at caesum.virtualave.net.

    I have just added some tools to the downloads page, all contributed by other people, and related to Borg. I still haven't finished the next version yet.....

    17th January 2001:News Update

    Purely a news update today. I'll be away from the computer for 3 weeks from the weekend :( and so won't be answering any emails.

    Borg 2.22 is coming along slowly, with some bits of code from various people to add to the bits I have done, but there are some new bugs which I can't find at the moment, and so I am waiting for these issues to be solved before moving on more. One serious one is the decoding of rep movsw in a 32-bit code segment. Now movsw will be movsd with an override to turn it into movsw. But because I have been disassembling rep separately if the override is before the rep then it will appear as rep followed by movsd still....... so some work to do there. Thanks to Howard Chu for that amongst several others.

    Work is also slow at the moment due to the development of another site, to be sited on virtualave and consisting of many perl scripts which are being worked on at the moment. More news later.

    On the puzzles side I have half written puzzle4 and have an idea for puzzle5, but anyone want to contribute to this ?

    OK, back in a few weeks anyway......

    21st December 2000:Borg 2.21

    I have uploaded the Borg 2.21 source and version. It is more of a source release than any changes to Borg itself. More or less every routine is commented now, except for fileload.cpp.... ran out of time. So I decided to upload it for anyone to play with over Xmas.

  • Comments added to decrypt.cpp, schedule.cpp, proctab.cpp, range.cpp, disio.cpp, common.cpp, search.cpp, relocs.cpp, mainwind.cpp, disasm.cpp, dasm.cpp.
  • More changes to critical sections and code in the scheduler to increase thread safety and reduce the potential for thread clashes.

    18th December 2000:Borg 2.20

    Yet another Borg release, just in time for Xmas. As I might not get much time to do anything over Xmas here is a new version of Borg. The changes are summarised below. I started working on NE files again, and then got sidetracked doing a lot of commenting. Anyway, I'll carry on commenting code over Xmas when I get the chance and return to NE files later...... I havent just been adding comments to the code but I took a few opportunities along the way to explain more things, so reading the comment blocks before each function can be quite interesting to people messing with the code, and certainly its reminded me of a few things and pointed out a few anomalies. Anyway, I may have moved some variables around a bit too when I was commenting as it gave a chance to see things a bit differently. Now, if only I had more time to do stuff....

  • If a file cant be opened with write permission it is opened readonly and patching is disabled, with a warning message issued.
  • Imports by name added to NE file parsing - still need to add import by ordinal, which is the majority of imports. To add the imports a segment at 0xffff:0x0000 is created with offset 1 being the first import, and each import being given an address. This segment can be viewed at the end of the disassembly, with its xrefs etc. This is a bit contrived but suffices for the file analysis.
  • PE Files without an entry point are now started at the first section. Checks are now made for valid addresses on naming, and setting the ouput line.
  • Bugfix - was crashing on some resources due to long descriptions in segheaders, now fixed.
  • Segviewer size increased slightly to allow long addresses in some dlls to be seen fully.
  • Full comments added to list.cpp, data.cpp, gname.cpp, debug.cpp, exports.cpp, imports.cpp, stack.cpp, savefile.cpp and names.cpp (well at least function header comments with some dialogs and explanations to why things are the way they are :)).

    11th December 2000:Borg 2.19

    Borg2.19 has just been uploaded to the site. The main change is the ability to decrypt/encrypt from some simple algorithms, and save the results to the exe file (be wary of relocations if you do this though). There are also a number of bugfixes for bugs which I have come across recently. I have been trying to reduce memory usage a little as well, as with even a medium sized file the memory used by Borg is huge.

  • Been commenting some bits of code for a change. (Mostly brief function overviews, I feel guilty after starting to read Code Complete ;) Needs a lot more work though.
  • Bugfix - wasnt always finding the correct line for the currently selected line.
  • Bugfix - was still crashing due to long strings printing beyond the screen buffer.
  • Bugfix - making the top line into a string now keeps the new name on the top line.
  • Compiler options changes to make Borg use less memory, although it still eats memory ferociously, also made savefiles incompatible with previous versions in the process :)
  • Small changes to some instruction sequences on exit after having some problems with exitting from Borg. This appears to happen when disassembling large programs and when memory is paged out. Not sure if this fully resolved yet. It seems that the program is trying to delete objects which are in paged out memory, so a fault is generated but the memory isnt being paged back in, and it just keeps page-faulting within the Borland C++ exitcode and trying to page the memory back which keeps failing. Not sure why this is happening, but I have the debug version of WinME now, and so this could be a problem just on my system :(
  • Fixed a bug regarding PE headers which meant that for some files the header size wasnt calculated properly. Appears to be a rare thing though, as I have only just found one file like it!
  • Added simple decryptor to Borg. It allows a block to be xorred, rotted, mulled, added or subbed with a byte/word or dword. The result can be written to the original file (patch the file), so it could also be used for simple encryption as well. Further - added xadd decryptor to it (xchg and add through loop). Further - added array decryption. This allows two arrays in the file to be xorred/added/etc. The decrypt list is saved in database files to enable reconstruction of the file when it is reloaded.
  • More changes to the scheduler and exit routines with critical sections and threadpause/threadstopped variables.
  • Removed #pragma warnings for non-Borland compilers. Had a go with msvc and changed some signed variables to unsigned to reduce warnings, as well as adding some further typecasting.

    27th November 2000:Puzzles

    Today I added the puzzles page. So whats this all about then ? Well, this is a new creative outlet. Go to the puzzles page and read all about it. It should be of interest to programmers and software engineers and debugger gurus! Seriously I hope everyone will eventually be able to find something of interest there in this unusual page :)

    14th November 2000:Borg 2.18

    Heres the new version. Just one bugfix, and the disassembly of dialogs into data items. I think its the closest I've come to sorting out the Dialog format since Borg1 which didnt deal with DIALOGEX properly. Well, its looking better now, but there could still be problems with some dialogs. I've tested it on a few but I need more people testing it, so here it is :) It was so difficult to find the dialogex format and then I realised that it was right under my nose after all in the windows help files with bc builder....... stupid me ;) Heres the version.txt anyway:

  • Bugfix - loaded databases vertical scrollbar should now work ok.
  • Dialogs are now disassembled into data and commented.

    8th November 2000:Borg 2.17

    I decided to release this as I will be busy this weekend and unlikely to get any coding done, so here it is.... stable for a few days. This time it's some searching changes, and searching is now working a bit better. Heres the version.txt this time:

  • Bugfix re searching: was finding the first match for a segment twice in some cases.
  • Search again option added to menu.
  • F3 now brings up search box (first time), or searches again if one search has been done.

    7th November 2000:Borg 2.16

    Another version of Borg with yet more menu goodies to play with. This time it's the addition of string table decoding, a string bugfix and some floating point utilities. Heres the version.txt this time:

  • Stringtables are now decoded and named by id_no of the string.
  • Strings are now limited in the size which is shown in the output, as long strings were being problematic and causing crashes.
  • Added data analysis types of single, double and long double (10 byte) floating point reals.
  • Added single real override for immediate values, to display immediate (single real) floats.

    6th November 2000:Borg 2.15

    Another version of Borg with some more menu goodies to play with. This time it's the addition of block selection, with block undefines or dumps. Heres the version.txt this time:

  • Blocks can now be selected. First select top, and then bottom (from one of the menus). Shortcut keys are t and b to define the blocks extents.
  • Added undefine block to main menu.
  • Added save block as asm/text to main menu.
  • Also added a dialog to view the bounds which are currently set (Quick hack really).

    Been a lack of feedback recently, anyone want anything specific adding ? Email me your requests and I'll add them to the list, or maybe give them more priority :) Otherwise it's whatever I feel like at the time.

    31st October 2000:Borg 2.14

    Happy Halloween, or whatever. In what has become almost a daily release (don't worry this won't continue) Borg 2.14 is uploaded tonight, whoopee. The additions this time:

  • Added 'Enter Comment' to right click menu, and changed some enabled buttons to grayed at the start (no file loaded).
  • More instructions are now xreffed - mostly 32bit modr/m type references with a pure disp32, as well as straight 32-bit memory stores/fetches.
  • More locations can now be reached by pressing enter - mainly added various 32bit modr/m types to the list.
  • Added more flags to the disassembly, for display purposes. [So savefiles are once again invalid from older versions].
  • Added negation of immediate values. Shortcut is '-' key. Note that signed immediates can't be negated by this (ie where the instruction is already explicitly using a signed immediate).

    30th October 2000:Borg 2.13

    Decided to remove all the sounds from the site as they are really annoying......

    Oh, and heres yet another new version of Borg. What the hell, I may as well release versions when I keep backing up the files and stuff.... Only a few small changes this time, but it's progressing :)

  • Added font selection, 5 fonts on the menu, with 3 Courier New fonts and their sizes, the ANSI_FIXED and SYSTEM_FIXED.
  • Fixed display bug when scrolling beyond the end of the last piece of data.
  • Reorganised the main menu.
  • Added a longer undefine option - to next gap/comment/section or xreffed location.

    29th October 2000:icmp.dll

    Redid the icmp analysis page - when I validated the html I realised that I had left in things like <windows.h> and so it thought it was a tag, whereas I should have put &lt;windows.h&gt;, hehe.

    28th October 2000:Decompilers

    If you ever wondered what the output of a decompiler would look like then you should try out the Reverse Engineering Compiler. I must admit that such a tool is very useful when you know what you're looking for, it's well worth a mess with, and you can save a lot of time with the template that is created if you really need to reverse engineer something. It also shows some of the difficulties in decompilation, as mentioned in my previous rant.

    28th October 2000:Borg 2.12

    Whats this another update so soon ? Well, I realised I hadn't changed the old email details and web site details in the program, so thought I better had and upload it again. Another couple of minor changes, with a different font (as suggested by Eugen again, although I did it slightly differently), and I added some colour setup stuff which is nice eyecandy, so you can set your own colours to be used on the display ;) Heres the version.txt notes again:

  • Had a most interesting email off Eugen Polukhin who has managed to rewrite the display routines in a most interesting and enlightening way. The result of this is that I reconsidered the way in which I was painting the client area and appear to have solved the problems of the flickering display. Looks much nicer now, although I haven't implemented all of Eugens solution, which is most interesting. I will undoubtedly return to Eugens methods at a later point in time, but if you want to see what he did then check out www.sinor.ru/~eugen.
  • Added buttons to the help about box for mailto and http, inspired by Eugen again ;)
  • Changed to ANSI_FIXED_FONT from SYSTEM_FIXED_FONT.
  • Added colour options for background, text and highlight bar which are saved as reg entries. So you can now use whatever colours you want to use, and if you wonder why i have colour in some places and color in other places, then don't worry about it. colour is the english spelling and color the american and programmatical, so yeah i get mixed up at times ;)

    26th October 2000:Eugen Polukhin

    Had a nice email from Eugen Polukhin who's been rewriting some of Borg and has uploaded some different sourcecode to his site. The source is mainly of academic interest at the moment since it is less functional in some areas, but he has rewritten some interesting parts, including the display code. He's solved flickering display problems amongst other things, and having been bitten by the bug again I relooked at the way the display code works in my current source. I think I have also solved the flickering problems for the next release, using some of Eugens ideas and changing a few things although I haven't gone for the complete rewrite that Eugens shown. I will definitely be returning to his source for ideas though. Here's the complete rundown by Eugen:

    Hi, Cronos!
    I've played a bit with your Borg - seems like the best tool of that kind 
    which come with sources - to regain my Win32 habits,
    and from  www.sinor.ru/~eugen you can fetch my humble outcome
        //   I am not taking too much care on my page,  well...  //
    
    
    So,
    1) help template (though your FAQ is in there)
    2) no more flickering - Grrr!!!
    3) debug ( status, messages etc) output - switch to thru "F6"
        ( I've defined DEBUG in sheduler.cpp and defined DebugMessage be my routine)
    4) different font - Courier
    5) different look - white background with margin
    6) some minor changes here and there - 
              without particular reason - traces of my investigations
    
    The painting - user responding scheme was a bit revised
    
    And above all - incredible, lovely  About dialog! :)
    
    It is all just an exercise, not a real work
    I had no time to code it all right,
    so some things were disabled, that is almost all keystrokes,
    saving, restoring, search
    Just hope, you can borrow something 
    to "make it rock" in the future.
    
    I am not sure if you are going to evolve your Borg further,
    if not, it's a big loss. There is a lot of stuff asking in
    and it is still the most advanced among opensource 
    disassemblers (oh, i allready said that)
    
    Best regards, Eugen
    
    I must say the F6 idea is most beautiful :) I'll be looking at this closely.

    24th October 2000:Borg 2.11

    Well, I was promising a new release of Borg, and so I have uploaded it today. It is version 2.11 and the changes since the last version are (direct from my version.txt notes):

  • Internal changes re new stack class, for return stack and in partial preparation for a later emulator for unpacking code. However in order to do this I had to change the file format of saved files slightly, and this will be incompatible with previous versions.
  • Disasm class has now been split into two classes as it was getting unmanageable. The two classes comprise disio = disasm io functions, and disasm the main disassembly database class. There are some friend functions in the disio class due to the complexity, and it should be noted that these access the iterators of the disasm class. Whilst cleaning up these classes I moved some functions around and made some changes (for example setting a byte override by pressing a key now only goes through the scheduler once rather than twice), and some common code has been put into other private functions.
  • Shortcuts disabled until file loaded.
  • Comments added properly. Can now enter comments during disassembly and they appear in the listings, etc.
  • Added a savefile object and file functions, to allow file compression to be added to the files more easily. The new class has read and write functions where file compression can be added.
  • Added some RLE compression to the savefiles, using nibbles. Results in around 30% reduction to savefile sizes. May as well make all the save file changes at the same time ;)
  • Made a proper vertical scroll bar, which really wasnt that much of a problem after all. It works on addresses rather than number of lines in the disassembly, which seems fine. Made the horizontal scrolling a little better by allowing dragging of the slider. Both only update the position on release and not throughout the motion, which would be more difficult to implement (and avoid sending millions of messages for updates).
  • Added version info and checks to savefiles. Hopefully the savefiles should be ok now, and won't change so much in future versions!
  • Disassembly from the location of an export only takes place if it is in a code segment now since any address can be exported, including a data address (eg for debug hooks, etc).

    No doubt for most people the two big changes are that the scroll bars are working properly now, and you can add comments. Still, I'll be adding some more good stuff to Borg over the coming weeks, look out for more updates here :)

    19th October 2000:icmp.dll

    Just added an old analysis of icmp.dll to the pages, which some people might find of interest. It is practically a reverse engineering of the dll and may contain some points of interest to some people :) It's actually quite detailed and written in C.

    17th October 2000:Decompilers

    I was going to write a small editorial on decompilation today, but instead I turned the whole thing into a separate page and you can find it here, it is basically a discussion of the possibility of decompilation, which people often ask me about.

    Exams over - yippee, one went really well :) and the other one didnt :( Results in three months, and with any luck I have an MSc in Mathematics :)

    10th October 2000:Website Updates

    If anyones noticed I have been messing about with the website a bit over the last couple of days. It is now accessible from:

    http://www.cronos.cc/

    and

    http://cronos.qkz.net/

    The first link of which is the most preferable to use. I can only apologise if you were unlucky enough to visit at a brief moment when I uploaded an index page to find I'd messed up the javascript, brief moments and quickly corrected....... I just managed to give the site a quick check in Netscape as well, and it soon became apparent that the whole menu was missing due to a missing tag, whoops. Anyway, it should work now, at least in so far as Netscape seems to do strange things all the time anyway :)

    8th October 2000:New site

    I am writing these new web pages for my new Borg site pretty quickly, but welcome, and if you're wondering about the strange noises they're there because I'm mad :) Just kidding, you need some kind of sense of humour to write interactive disassemblers ;) And probably less to use them ;)

    Anyway, I'll be posting regular updates here about the status of Borg. I have my final exams next week, so look out for some updates shortly. I just finished adding proper comments to Borg for the interactive disassembly, and I have plans for some other interesting changes soon.

    And if you can find the time then it would be nice to have some feedback from anyone that uses the previous releases of Borg, especially to receive a list of what you most want in the next release (top ten please). And thats from anyone, you dont have to be some spotty geek speaking techno babble to let me know what you think ;) And if thats your picture on the right, then think of the fame ;)

    This site is goldfish friendly.