User:Jason Todd
Subversive Technologies & Countermeasures
Like many of us I wish there were more hours in a day and more days in a week. Time has been at a premium lately and I have not had the chance to write many articles that deserve to be public for the site. These damn video games have chewed up what little moments I had leaving my contributions to the site baron. I had hoped that more community members would have added to the site by now, but not all things always go as we hope.
It could be possible that people are waiting for the perfect article to post or waiting for a ground breaking concept to be discovered before they contribute. The point behind this being a wiki is that it can been done in small steps and expanded upon at any time by any member. Even using their personal home page on the site here for blogging has the possibility to lead people in new directions and expand the base knowledge of others.
It could also be possible that people are not found of releasing their work under a GPL license. Only the text you post here is under the GPL (GNU if binaries are uploaded) and you retain all rights to your original work. If it was not under a GPL then any edits to the work by other members would be a violation of copyright, and would not let the community expand upon the work. If you have programs that you do not wish to have GPL'd you can by all means describe the work and provide links to the software, this will not make the work GPL/GNU licensed or change it license status.
Maybe the site sucks and their is little interest from the community for this type of format, possibilities are endless. In the end I will keep contributing to the site and hope that free knowledge can benefit everyone. When time permits I will add some new projects and a few articles.
Jason Todd 11:01, 2 May 2006 (CDT)
Working on implementing a Development box to add to all pages to give a quick refernce for content authors, page information purpose, current maturity or development cycle, and the status of the information contained in the page. Need to create the legend page to better explain the intent behind the developement box. Hopefully this will provide an avenue for more creation and contributions on content pages.
Jason Todd 20:05, 2 June 2006 (CDT)
Implemented Development box and added it to a few pages. The site is still in need of a logo, anyone will artistic talent and wants to help please let me know.
Jason Todd 21:15, 4 June 2006 (CDT)
Finishing up npg v1.1.0 and making sure I did not break anything major. The code has went through a substantial evolution incorporating some features that make it a more robust injector. Still have one last feature I need to work on before moving onto to the next phases of the project but will post the current release here soon.
Jason Todd 16:43, 24 June 2006 (CDT)
Have a working version of npg1.1.1 but the code base has become so cluttered that I am going to take a little time and at least clean it up some if not optimize it before release.
Version 1.1.1 added the ability to specify multiple devices on a single packet.
- (device1,device2,device3){packet}
Jason Todd 15:08, 26 June 2006 (CDT)
Have a working version of npg1.2.0 and testing it now, should be able to release soon. Added ability to read a libcap compatible file dump, i.e etheral, windump, etc. Fixed a problem with interactive file name recognition.
Not going to pursue declaration constants at this time since it has many caveats that will be solved with a different method in the future.
Jason Todd 13:29, 28 June 2006 (CDT)
npg version 1.2.1 should be the last release for some time. Unless some oversight in features, operation, or bugs come up I am going to move onto the second phase of the project.
Will give it a month or so and if nothing major is reported will review the source and remove the beta tag.
Still need to write some decent documentation and examples.
Jason Todd 14:46, 29 June 2006 (CDT)
npg version 1.3.0
Its a wonder I ever get any new projects done at all.
- Adding command line injection as an alternative to a packet file
- Separated parsing and file reading operations in the source code.
Command line packet injection will allow for dynamically generated packets to be injected without the overhead of a packet file. Separating the parse portions from the file read is a long time coming and is a step forward in cleaning up the source. Should be done in a day or two depending on what time permits.
Jason Todd 22:57, 3 July 2006 (CDT)
Hopefully will find the time to test npg 1.3.0 soon and release. Some things take longer to change then I expected.
Changelog:
- Corrected CRC in UDP Header potion of the DNS Request example
- Display argument list when invalid command line argument is attempted
- A > character is now a legal character inside of a < > packet ID bracket
- Added -t , -r , and -p arguments for command line injection without the use of a packet file
- Separated the file read and data parsing functions in the source code for easier audits and maintenance
- Fixed oversight with capital A-F values being invalid hex identifiers
- Added Error stop for lines that exceed the maximum read length on a packet file
- Increased packet file read in line max length to 4096
- Removed artificial maximum packet size defined in npg
- Created npg@wikistc.org contact address for bug reports, comments, suggestions, etc
The biggest time consumption being the changes and seperation to the file read and parsing functions.
Jason Todd 18:06, 11 July 2006 (CDT)
Found a few hours to work on npg 1.3.0 and have audited about 80% of the total source. If I can squeeeze in another couple of hours on it I should be able to finish the audit and re work the documentation for release.
Should have had this done weeks ago, but time is at a premium and getting done what I can, when I can.
Jason Todd 00:03, 17 July 2006 (CDT)
Released npg 1.3.0 and hopefully did not introduce any new bugs.
Going to write a small article on how to construct your own packet streams without using scripts or other automated tools. Not sure if I am going to find the time to create a semi-automated stream builder, but knowing how to do it yourself without scripted tools will transcend any tool.
Jason Todd 11:50, 22 July 2006 (CDT)
Still working on the packet crafting article, its a deep subject and getting a solid point across without writing a book on network principals is proving a challenge.
Jason Todd 00:13, 3 August 2006 (CDT)
Looks like I am going to put a quick GUI together for npg with .net. If I can get everything worked out will look into a cross platform common GUI after. I will still maintain and develope the command line version since it still has a purpose.
Almost done with an entry level packet crafting article that should benefit command line users of npg.
Jason Todd 21:24, 9 August 2006 (CDT)
Looks like I am going to scrap the .net version and convert npg into a c++ and work on a cross platform GUI implementation of the utility. GUI will contain a point and click packet builder and should take up a decent amount of my time.
Jason Todd 13:10, 13 August 2006 (CDT)
Since Visual C++ 2005 Express is available for free I am in process of converting npg to C++ as a segue to a GUI version and going to drop the Visual C 6 and C code version at their current level. npg 1.3.0 will be the last C version but will continue to exist as a legacy version for those who wish to build on or modify it for their needs. A new C++ segue version will be released in the near future as a console application under the new build before transitioning to a fully GUI.
Jason Todd 00:17, 17 August 2006 (CDT)
The conversion of npg 1.3.0 from c to c++ as I expected has bloated the .exe to almost double it's c size. This really is not that much of a problem since the next step is to add a GUI and c++ should be a bit easier to manage while the GUI code will bloat the .exe anyways. A command line version is built into the c++ code as a conditional compile for transition with some of the previous functionality of the c version, but more then likely will be dumped later in favor of leaving only the command line version in c. As part of the transition I will probably release a GUI version that mimics the command line version to get a feel for the Qt library and GUI programming before I start work on the fully functional GUI version. Leaning VC2005 layout also is taking some time.
Jason Todd 15:01, 22 August 2006 (CDT)
Received C++ GUI Programming with Qt4 (ISBN 0-13-187249-4) today and will use Qt 4.x from TrollTech to develop npg and it's GUI. The C++ conversion is done for the most part and will start developing the GUI using Qt as fast as I can learn it. Looking to take npg cross platform in the future and Qt should provide a consistent GUI framework for the transition.
The first steps of the GUI will be a basic conversion of the command line version into a GUI version. I will then begin the work on a packet crafting interface that will reduce the learning curve and calculate dependant fields automagically.
Jason Todd 23:21, 28 August 2006 (CDT)
npg GUI conversion is making progress. Starting to get a feel for the Qt framework and attempting to get the proper look and feel of the interface. It's very important to me to have an interface that is practical, and intuitive, so I am struggling on the perfect layout and feel.
Jason Todd 15:47, 9 September 2006 (CDT)
I ordered An Introduction to Design Patterns in C++ with Qt 4 (Bruce Perens Open Source) (ISBN 0131879057) today to help give me a better grasp on the Qt framework. I finished C++ GUI Programming with Qt4 (ISBN 0-13-187249-4) but it still left me with some questions and is now making great reference material. I have only built GUI's in java and that was not very extensive but I am finding Qt to be an excellent package. The GUI version npg at this point is waiting on a better understand of how to store data models, but in the mean time I am fleshing out basic UI functionality.
Jason Todd 21:04, 14 September 2006 (CDT)
Advancing my understanding of the Qt framework while making progress on npg has been slow but steady. It's hard to put a timescale on when I will be able to release a version that encapsulates the look and feel I am going for, but I am making steady progress and the project has not stalled out.
There is a surprising amount of little things that you just expect to be there in an GUI and trying to get them all in, learn as you go, and design the big picture takes time. The odds are high that I will release an alpha version without a packet header constructor but a pure data field like the console version for feedback sooner then later.
Jason Todd 00:02, 4 October 2006 (CDT)
Still making progress on the GUI and I have many key concepts in place but still have a lot of work left. I am getting closer to releasing a alpha tech test with limited functionality but still have a few design hurdles left before I reach that point. This first release as always will have sloppy code left over from all my trial an error design code that will need to be cleaned up over time, so the code on this release will more then likely be a mess.
Jason Todd 11:58, 22 October 2006 (CDT)
Still hammering away at the GUI version of npg as it seems I rewrite major parts of the program on a weekly basis. I try to look forward as much as possible when programing but not all paths lead to success and sometimes the ones that do need to be re factored with 20/20 hindsight. The final result is the code is becoming much more solid and robust while providing clear logic pathing as to why things are coded the way they are. I am making forward progress and only 1 or 2 major hurdles need to be conquered before I can release an alpha tech test to make sure my madness makes any sense.
Jason Todd 20:53, 3 December 2006 (CST)
Progress is slow on the GUI version of npg as time is short but figured a small update was in order. I had a working version that provided the same basic functionality as the console version of npg but ran into problems when projecting features and realized that some major refactoring and cleanup was needed. So for the better I am refactoring the code and progressing along a better path.
Jason Todd 22:57, 9 March 2007 (CST)
The GUI version of npg is still progressing and I recently made the modifications necessary to make sure it runs on *nix and Windows systems. We are still in early alpha stages with the greatest amount of time invested in interface layout and design, but forward progress is being made.
Jason Todd 21:45, 22 May 2007 (CDT)
Still working on the GUI version of npg Jason Todd 00:17, 30 December 2007 (MST)
Any questions you have can be asked on my
talk page.

