Archive for the ‘Bits and Bytes’ Category

Reverseme Windows Keygen

Tuesday, June 22nd, 2010 by webstersprodigy

This one was challenging for me, and took me several hours, but was fun. I got caught up on certain parts that may not have been too difficult, but, yeah… http://crackmes.de/users/tripletordo/ice9/ You can download the executable here Ice9.zip. The first thing I noticed is probably the ‘trick’ which was simply a call to isdebuggerpresent. I [...]

Reverseme: Easy Windows

Tuesday, June 8th, 2010 by webstersprodigy

To get back into the groove, I decided to try a crackme. After searching far and wide, I can’t seem to find where I got this from, other than crackmes.de.  One of my favorite sites. Crackme.zip <– here it is in case it’s deleted. And the solution is, with no analysis: #include <iostream> #include <string> using [...]

calling convention cheat sheet

Thursday, January 21st, 2010 by webstersprodigy

cdecl, stdcall, fastcall, c++

mycontroller – done

Sunday, November 22nd, 2009 by webstersprodigy

The goal of this project was to integrate all parts covered throughout the lab. Similar to lab7, lab8 fetches microcode from a second memory device. Extending lab7, however, it also performs very basic operations, including add, eq, nop, ld, skipz, and halt. There are 4 physical registers, which will be referred to as 00, 01, 10, and 11.

Finished RTOS similar to FreeRTOS

Saturday, July 25th, 2009 by webstersprodigy

This is an RTOS developed by myself, with some code taken from FreeRTOS. This is some of the most difficult code I have ever written, although it really doesn’t do anything useful. Man, context switching in C can be a bear! It’s like a programatic buffer overflow! (seriously, you do a function call and just pop off enough stuff to overwrite the instruction pointer).

RTOS and the Parallax Propeller

Tuesday, May 26th, 2009 by webstersprodigy

In CS 504:Real Time Operating Systems, the class built a functional Real Time Operating system based on the UIK API. In my implementation, I heavily relied on the source code of FreeRTOS. The process focused primarily on demonstrating the atmel processor, multitasking, and and basic interprocess communication, which are fundamental parts of an RTOS. In this project, the same problems are achieved with a very different architecture. Namely, all the first programming projects – generating a sound wave, counting LEDs, timing how long buttons were pressed, and handling hardware events – were programmed similarly and multi-tasked on the propeller chip. This project included interfacing with the ntsc and peripheral drivers, writing a sound driver, learning spin and propeller assembly, and comprehending the propeller architecture.

playing a scale with the atmega16

Monday, May 4th, 2009 by webstersprodigy

A musical “note” is a waveform that has a certain fundamental frequency. A perfect sine wave consists only of the fundamental frequency, and sounds very “pure” or mellow, like a flute. For this project, you are to use interrupts to generate the notes of a musical scale, while at the same time using another interrupt to update a count. We will generate square waves by toggling a bit within a port on and off. Specifically, your program should play the notes from middle C to the next higher C, each of approximately one second in duration. These notes should be playing at the same time that an 8-bit binary count is being displayed in the LED’s, updating at approximately 1/4 second.

avr interrupts

Wednesday, April 8th, 2009 by webstersprodigy

The purpose of this assignment is to give you experience with the AVR’s timers and the use of interrupts. You are to repeat assignment #1, this time performing the timing using an interrupt-driven timer. You are to write an interrupt service routine (ISR) for one of the hardware timers on the AVR. Each time the timer interrupts, you should update a counter variable. Then, when determining the amount of time that the switch is held down, use the counter value. Then, use the counter again to determine how long to turn on the LED. As before, in addition to writing the code, determine the size of the code in your program, including main and the ISR.

stk500 avr atmega16 linux gcc hello, world

Saturday, April 4th, 2009 by webstersprodigy

Does my title sound like buz-word central? You bet it does. That’s because it was a bit difficult to find any good introductory material on this. Maybe that’s because there’s so much information out there…

mounting partitions from a disk image

Tuesday, February 3rd, 2009 by webstersprodigy

My laptop drive recently died on me. Of course, this is the one machine that I don’t have good backups on. After various passes of dd_rescue (forward and backward) I had a pretty good disk image. Now I wanted to mount a partition. Problem is, I had an image.

whoever said userspace filesystems had to be slow?

Monday, January 26th, 2009 by webstersprodigy

http://www.ntfs-3g.org/performance.html

gcc security tips

Monday, November 10th, 2008 by webstersprodigy

Here are some flags that may help vulnerable code from being executed. -D_FORTIFY_SOURCE=2 This should get rid of some buffer overflows that can be analyzed statically and some obvious ones (strcpying input, format string vulnerabilities). More information can be found here: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html -fstack-protector-all From the man page: Emit extra code to check for buffer overflows, [...]

ksplice

Sunday, April 27th, 2008 by webstersprodigy

The bad news is that ksplice makes it easier than ever for an intruder with root to change your settings (eg tripwire stuff). Before, this would have at least normally required a reboot which is something most sysadmins will naturally look into. Rebootless kernel patching has been around for awhile, but never has it been so easy.

Linux on-the-fly kernel patching without LKM

Thursday, February 7th, 2008 by webstersprodigy

Well, I didn’t know this was possible. First published in phrack, and can be viewed at http://doc.bughunter.net/rootkit-backdoor/kernel-patching.html
I guess that pokes a hole in my careful ideas about ids systems (I guess another one, there are holes on top of holes). Not this particular rootkit of course, but the fact that you can potentially manipulate the kernel by modifying kernel memory. Very tricky.

mycontroller – Cache

Thursday, January 3rd, 2008 by webstersprodigy

Download the mmlogic schematic here, the memfile here, and the cache file here.   The clock is run at a very slow speed so you can see what is happening.  I didn’t bother to stop the memory/cache from outputting, so there is a constant read. The input is a memory address, which is fetched from [...]

AMD vs Intel Current Processors

Tuesday, December 18th, 2007 by webstersprodigy

This paper was for my architecture class (topic: compare current Intel and AMD processors).  I learned a lot researching this, but it may contain a lot of holes due to my lack of knowledge.  Feel free to correct any of my mistakes in the comments section. Here is the paper.

mycontroller – DMA

Thursday, November 1st, 2007 by webstersprodigy

This is part of a project to build a complete, functional, extremely basic microcontroller. It is built using multimedia logic. This section is a simulated very simplified DMA. Example Run — The test of writing back and forth bytes seems to work. Also, the example from the lab specification seems to work. Namely: Download: -Select [...]

The Magic Constant

Wednesday, August 8th, 2007 by webstersprodigy

The hash_long function is found a lot of places in the kernel. Amongst other places it is how PIDs are stored in a table.

mycontroller – RAM

Thursday, July 5th, 2007 by webstersprodigy

This is part of a project to build a complete, functional, extremely basic microcontroller. It is built using multimedia logic. This is a functional subsystem that manages a small RAM in our architecture speed across 2 128 byte memory addresses. All the Input and output can be viewed from the first page. The tristate devices [...]

Program Counter

Sunday, July 1st, 2007 by webstersprodigy

This is part of a project to build a complete, functional, extremely basic microcontroller.  It is built using multimedia logic. This is a fully functional program counter (PC) that runs on a 1 second clock. On page 1, there is a switch.  If the switch is set to 1 then the PC increments by 1.  [...]


No computers were harmed in the 0.353 seconds it took to produce this page.