2of1
half a nibble of another

Home
Projects
About
Jul

10

My Xmonad setup

Filed Under (Linux, Open source, Tips & tricks, Xmonad) by 2of1 on 10-07-2011

Recently my WM of choice has been xmonad.

Configuring the desktop to my specification has been fun yet sometimes quite tedious as i messed around with the Haskell config (my knowledge of haskell == NULL), dzen2, conky, etc.

Here’s a screenshot from my main xinerama screen:

If anyone wants some inspiration for their setup, here are the relevant config files / scripts:

xmonad.hs

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.XPropManage
import XMonad.Hooks.FadeInactive
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Prompt
import XMonad.Prompt.RunOrRaise
import System.IO
import qualified XMonad.StackSet as W
import XMonad.StackSet(stack)
import XMonad.Actions.TagWindows
 
main = do
  workspaceBarPipe <- spawnPipe myStatusBar
  spawn myConkyBar
  xmonad $ defaultConfig
    { manageHook = manageDocks <+> manageHook defaultConfig <+> myManageHook
    , layoutHook = avoidStruts $ layoutHook defaultConfig
    , terminal = "urxvt"
    , workspaces = myWorkspaces
    , startupHook = myStartupHook
    , logHook = myLogHook workspaceBarPipe >> fadeInactiveLogHook 0xdddddddd
    , modMask = mod4Mask
    } `additionalKeys`
    [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
    , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
    , ((0, xK_Print), spawn "scrot")
    , ((mod4Mask, xK_x), runOrRaisePrompt defaultXPConfig)
    , ((mod4Mask, xK_m), focusUpTaggedGlobal "mail")
    , ((mod4Mask, xK_i), focusUpTaggedGlobal "irc")
    , ((mod4Mask, xK_c), focusUpTaggedGlobal "chat" >> spawn "cat /dev/null > /tmp/centerim.msgs")
    , ((mod4Mask, xK_b), focusUpTaggedGlobal "web")
    , ((mod4Mask, xK_d), focusUpTaggedGlobal "dev")
    ]
 
ws_term = "1:term"
ws_web = "2:web"
ws_dev = "3:dev"
ws_comms = "4:comms"
ws_rce = "5:rce"
ws_vms = "6:vms"
ws_stats = "7:stats"
 
myStatusBar :: String
myStatusBar = "dzen2 -fn '-*-terminus-bold-r-normal-*-10-*-*-*-*-*-*-*' -bg '#000000' -fg '#444444' -h 22 -sa c -x 0 -y 0 -e '' -ta l -xs 1"
 
myConkyBar :: String
myConkyBar = "sleep 1 && conky -c ~/.conkyrc | dzen2 -fn '-*-terminus-bold-r-normal-*-10-*-*-*-*-*-*-*' -bg black -fg green -h 22 -sa c -x 1000 -y 0 -e '' -ta r -xs 1"
 
myLogHook :: Handle -> X ()
myLogHook h = dynamicLogWithPP $ defaultPP
      {   ppCurrent	= dzenColor "black" "green" . pad
	, ppVisible	= dzenColor "black" "lightgreen" . pad
	, ppHidden	= dzenColor "#cccccc" "" . pad
	, ppHiddenNoWindows = dzenColor "#444444"  "" . pad
	, ppUrgent	= dzenColor "" "red"
	, ppWsSep    = " "
	, ppSep      = " | "
	, ppTitle    = (" " ++) . dzenColor "green" "" . dzenEscape
	, ppOutput   = hPutStrLn h
 
      }
 
myWorkspaces = [ ws_term,ws_web,ws_dev,ws_comms,ws_rce,ws_vms,ws_stats ]
 
myManageHook = ( composeAll
    [ appName =? "mutt" --> doShift ws_comms
    , appName =? "irssi" --> doShift ws_comms
    , appName =? "centerim" --> doShift ws_comms
    , className =? "Chromium" --> doShift ws_web
    , className =? "Eclipse" --> doShift ws_dev
    , className =? "Vmware" --> doShift ws_vms
    , className =? "Idaq" --> doShift ws_rce
    , appName =? "htop" --> doShift ws_stats
    , appName =? "feh" --> doShift ws_stats
    , appName =? "dev1" --> doShift ws_dev
    , appName =? "dev2" --> doShift ws_dev
    ] ) <+> xPropManageHook xPropMatches
 
myStartupHook = do
  spawn "urxvt -title mutt -name mutt -e mutt"
  spawn "urxvt -title irssi -name irssi -e irssi"
  spawn "urxvt -title centerim -name centerim -e centerim"
  spawn "urxvt -title htop -name htop -e htop"
  spawn "urxvt -title feh -name feh -e feh ~/pictures/"
  spawn "chromium"
  spawn "urxvt"
  spawn "urxvt -title dev1 -name dev1"
  spawn "urxvt -title dev2 -name dev2" >> sendMessage NextWorkspace
  spawn "eclipse"
  spawn "vmware"
  spawn "schroot -p /home/dk/tools/ida/idaq"
 
xPropMatches :: [XPropMatch]
xPropMatches = [ ([(wM_CLASS, any ("mutt"==))], pmX(addTag "mail"))
               , ([(wM_CLASS, any ("irssi"==))], pmX(addTag "irc"))
               , ([(wM_CLASS, any ("centerim"==))], pmX(addTag "chat"))
               , ([(wM_CLASS, any ("chromium"==))], pmX(addTag "web"))
               , ([(wM_CLASS, any ("Eclipse"==))], pmX(addTag "dev"))
               ]

.centerim/external

%action nnotification
event msg
proto all
status all
options nowait
 
%exec
#!/bin/bash
nick=$(head -n 1 $CONTACT_INFODIR/info)
echo $nick $EVENT_TYPE >> /tmp/centerim.msgs

centerim-notify.sh

#!/bin/bash
 
TEMPFILE=/tmp/centerim.msgs
 
if [ -e "$TEMPFILE" ]
then
  MSGS=`wc -l ${TEMPFILE} | awk '{ print $1 }'`
else
  MSGS=0
fi
 
if [ "$MSGS" -lt 1 ]
then
  echo -n $'^fg(green)'
  echo -n $'^bg(black)'
  echo -n $'^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/pacman.xbm) ^fg(#cccccc)'${MSGS}' ^bg(black)'
else
  echo -n $'^fg(black)'
  echo -n $'^bg(red)'
  echo -n $' ^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/pacman.xbm) '${MSGS}' ^bg(black) '
fi

check-gmail.pl
(I pulled this off the net from somewhere and hacked it for my needs)

#!/usr/bin/perl
 
use Switch;
use Text::Wrap;
 
my $what=$ARGV[0];
 
$user="user"; #username for gmail account
$pass="pass"; #password for gmail account
$file="/tmp/gmail.html"; #temporary file to store gmail
 
#wrap format for subject
$Text::Wrap::columns=45; #Number of columns to wrap subject at
$initial_tab=""; #Tab for first line of subject
$subsequent_tab="\t"; #tab for wrapped lines
$quote="\""; #put quotes around subject
 
#limit the number of emails to be displayed
$emails=5; #if -1 display all emails
 
&passwd; #give password the proper url character encoding
 
switch($what){ #determine what the user wants
    case "n" {
        &gmail;
        if($new==0){print "^fg(green) ^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/mail.xbm) ^fg(#cccccc)0";}
        else{print "^fg(black)^bg(red) ^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/mail.xbm) $new ^bg(black)";}
    } #print number of new emails
    case "s" { #print $from and $subj for new email
        &gmail;
        if ($new>0){
            my $size=@from;
            if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
            for(my $i=0; $i<$size; ++$i){
                print "From: $from[$i]\n"; #print from line
                $text=$quote.$subj[$i].$quote."\n";
                print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
            }
            $size=@from;
            if ($emails!=-1 && $size >$emails){print "$emails out of $size new emails displayed\n";}
        }
    }     
    case "e" { #print number of new emails, $from, and $subj
        &gmail;
        if($new==0){print "You have no new emails.\n";}
        else{
            print "You have $new new email(s).\n";
            my $size=@from;
            if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
            for(my $i=0; $i<$size; ++$i){
                print "From: $from[$i]\n"; #print from line
                $text=$quote.$subj[$i].$quote;
                print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
            }
            $size=@from;
            if ($emails!=-1 && $size >$emails){print "$emails out of $size new emails displayed\n";}
        }
    }
    else {
        print "Usage Error: gmail.pl <option>\n";
        print "\tn displays number of new emails\n";
        print "\ts displays from line and subject line for each new email.\n";
        print "\te displays the number of new emails and from line plus \n";
        print "\t\tsubject line for each new email.\n";
    } #didn't give proper option
}
 
sub gmail{
    if(!(-e $file)){ #create file if it does not exists
        `touch $file`;
    } 
 
    #get new emails
    `wget -O - https://mail.google.com/a/2of1/feed/atom --user=$user --password=$pass --no-check-certificate> $file`;
 
    open(IN, $file); #open $file
 
    my $i=0; #initialize count
    $new=0; #initialize new emails to 0
 
    my $flag=0;
 
    while(<IN>){ #cycle through $file
        if(/<entry>/){$flag=1;}
        elsif(/<fullcount>(\d+)<\/fullcount>/){$new=$1;} #grab number of new emails
        elsif($flag==1){ 
            if(/<title>.+<\/title>/){push(@subj, &msg);} #grab new email titles
            elsif(/<name>(.+)<\/name>/){push(@from, $1); $flag=0;} #grab new email from lines
        }
    }
 
    close(IN); #close $file
}
 
sub passwd{ #change to url escape codes in password
    #URL ESCAPE CODES
    $_=$pass;
    s/\%/\%25/g;
    s/\#/\%23/g;
    s/\$/\%24/g;
    s/\&/\%26/g;
    s/\//\%2F/g;
    s/\:/\%3A/g;
    s/\;/\%3B/g;
    s/\</\%3C/g;
    s/\=/\%3D/g;
    s/\>/\%3E/g;
    s/\?/\%3F/g;
    s/\@/\%40/g;
    s/\[/\%5B/g;
    s/\\/\%5C/g;
    s/\]/\%5D/g;
    s/\^/\%5E/g;
    s/\`/\%60/g;
    s/\{/\%7B/g;
    s/\|/\%7C/g;
    s/\}/\%7D/g;
    s/\~/\%7E/g;
    $pass=$_;
}
 
sub msg{
    #THE HTML CODED CHARACTER SET [ISO-8859-1]
    chomp; s/<title>(.+)<\/title>/$1/; #get just the subject
    #now replace any special characters
    s/\&\#33\;/!/g;        #Exclamation mark
    s/\&\#34\;/"/g; s/\&quot\;/"/g;      #Quotation mark
    s/\&\#35\;/#/g;        #Number sign
    s/\&\#36\;/\$/g;        #Dollar sign
    s/\&\#37\;/%/g;        #Percent sign
    s/\&\#38\;/&/g; s/\&amp\;/&/g;        #Ampersand
    s/\&\#39\;/'/g;        #Apostrophe
    s/\&\#40\;/(/g;        #Left parenthesis
    s/\&\#41\;/)/g;        #Right parenthesis
    s/\&\#42\;/*/g;        #Asterisk
    s/\&\#43\;/+/g;        #Plus sign
    s/\&\#44\;/,/g;        #Comma
    s/\&\#45\;/-/g;        #Hyphen
    s/\&\#46\;/./g;        #Period (fullstop)
    s/\&\#47\;/\//g;        #Solidus (slash)
    s/\&\#58\;/:/g;        #Colon
    s/\&\#59\;/\;/g;        #Semi-colon
    s/\&\#60\;/</g; s/\&lt\;/</g;        #Less than
    s/\&\#61\;/=/g;        #Equals sign
    s/\&\#62\;/>/g; s/\&gt\;/>/g;        #Greater than
    s/\&\#63\;/\?/g;        #Question mark
    s/\&\#64\;/\@/g;        #Commercial at
    s/\&\#91\;/\[/g;        #Left square bracket
    s/\&\#92\;/\\/g;        #Reverse solidus (backslash)
    s/\&\#93\;/\]/g;        #Right square bracket
    s/\&\#94\;/\^/g;        #Caret
    s/\&\#95\;/_/g;        #Horizontal bar (underscore)
    s/\&\#96\;/\`/g;        #Acute accent
    s/\&\#123\;/\{/g;        #Left curly brace
    s/\&\#124\;/|/g;        #Vertical bar
    s/\&\#125\;/\}/g;        #Right curly brace
    s/\&\#126\;/~/g;        #Tilde
    s/\&\#161\;/¡/g;        #Inverted exclamation
    s/\&\#162\;/¢/g;        #Cent sign
    s/\&\#163\;/£/g;        #Pound sterling
    s/\&\#164\;/¤/g;        #General currency sign
    s/\&\#165\;/¥/g;        #Yen sign
    s/\&\#166\;/¦/g;        #Broken vertical bar
    s/\&\#167\;/§/g;        #Section sign
    s/\&\#168\;/¨/g;        #Umlaut (dieresis)
    s/\&\#169\;/©/g; s/\&copy\;/©/g;        #Copyright
    s/\&\#170\;/ª/g;        #Feminine ordinal
    s/\&\#171\;/«/g;        #Left angle quote, guillemotleft
    s/\&\#172\;/¬/g;        #Not sign
    s/\&\#174\;/®/g;        #Registered trademark
    s/\&\#175\;/¯/g;        #Macron accent
    s/\&\#176\;/°/g;        #Degree sign
    s/\&\#177\;/±/g;        #Plus or minus
    s/\&\#178\;/²/g;        #Superscript two
    s/\&\#179\;/³/g;        #Superscript three
    s/\&\#180\;/´/g;        #Acute accent
    s/\&\#181\;/µ/g;        #Micro sign
    s/\&\#182\;/¶/g;        #Paragraph sign
    s/\&\#183\;/·/g;        #Middle dot
    s/\&\#184\;/¸/g;        #Cedilla
    s/\&\#185\;/¹/g;        #Superscript one
    s/\&\#186\;/º/g;        #Masculine ordinal
    s/\&\#187\;/»/g;        #Right angle quote, guillemotright
    s/\&\#188\;/¼/g; s/\&frac14\;/¼/g;       # Fraction one-fourth
    s/\&\#189\;/½/g; s/\&frac12\;/½/g;       # Fraction one-half
    s/\&\#190\;/¾/g; s/\&frac34\;/¾/g;       # Fraction three-fourths
    s/\&\#191\;/¿/g;        #Inverted question mark
    s/\&\#192\;/À/g;        #Capital A, grave accent
    s/\&\#193\;/Á/g;        #Capital A, acute accent
    s/\&\#194\;/Â/g;        #Capital A, circumflex accent
    s/\&\#195\;/Ã/g;        #Capital A, tilde
    s/\&\#196\;/Ä/g;        #Capital A, dieresis or umlaut mark
    s/\&\#197\;/Å/g;        #Capital A, ring
    s/\&\#198\;/Æ/g;        #Capital AE dipthong (ligature)
    s/\&\#199\;/Ç/g;        #Capital C, cedilla
    s/\&\#200\;/È/g;        #Capital E, grave accent
    s/\&\#201\;/É/g;        #Capital E, acute accent
    s/\&\#202\;/Ê/g;        #Capital E, circumflex accent
    s/\&\#203\;/Ë/g;        #Capital E, dieresis or umlaut mark
    s/\&\#204\;/Ì/g;        #Capital I, grave accent
    s/\&\#205\;/Í/g;        #Capital I, acute accent
    s/\&\#206\;/Î/g;        #Capital I, circumflex accent
    s/\&\#207\;/Ï/g;        #Capital I, dieresis or umlaut mark   
    s/\&\#208\;/Ð/g;        #Capital Eth, Icelandic
    s/\&\#209\;/Ñ/g;        #Capital N, tilde
    s/\&\#210\;/Ò/g;        #Capital O, grave accent
    s/\&\#211\;/Ó/g;        #Capital O, acute accent
    s/\&\#212\;/Ô/g;        #Capital O, circumflex accent
    s/\&\#213\;/Õ/g;        #Capital O, tilde
    s/\&\#214\;/Ö/g;        #Capital O, dieresis or umlaut mark
    s/\&\#215\;/×/g;        #Multiply sign
    s/\&\#216\;/Ø/g;        #Capital O, slash
    s/\&\#217\;/Ù/g;        #Capital U, grave accent
    s/\&\#218\;/Ú/g;        #Capital U, acute accent
    s/\&\#219\;/Û/g;        #Capital U, circumflex accent
    s/\&\#220\;/Ü/g;        #Capital U, dieresis or umlaut mark
    s/\&\#221\;/Ý/g;        #Capital Y, acute accent
    s/\&\#222\;/Þ/g;        #Capital THORN, Icelandic
    s/\&\#223\;/ß/g;        #Small sharp s, German (sz ligature)
    s/\&\#224\;/à/g;        #Small a, grave accent
    s/\&\#225\;/á/g;        #Small a, acute accent
    s/\&\#226\;/â/g;        #Small a, circumflex accent
    s/\&\#227\;/ã/g;        #Small a, tilde
    s/\&\#228\;/ä/g;        #Small a, dieresis or umlaut mark
    s/\&\#229\;/å/g;        #Small a, ring
    s/\&\#230\;/æ/g;        #Small ae dipthong (ligature)
    s/\&\#231\;/ç/g;        #Small c, cedilla
    s/\&\#232\;/è/g;        #Small e, grave accent
    s/\&\#233\;/é/g;        #Small e, acute accent
    s/\&\#234\;/ê/g;        #Small e, circumflex accent
    s/\&\#235\;/ë/g;        #Small e, dieresis or umlaut mark
    s/\&\#236\;/ì/g;        #Small i, grave accent
    s/\&\#237\;/í/g;        #Small i, acute accent
    s/\&\#238\;/î/g;        #Small i, circumflex accent
    s/\&\#239\;/ï/g;        #Small i, dieresis or umlaut mark
    s/\&\#240\;/ð/g;        #Small eth, Icelandic
    s/\&\#241\;/ñ/g;        #Small n, tilde
    s/\&\#242\;/ò/g;        #Small o, grave accent
    s/\&\#243\;/ó/g;        #Small o, acute accent
    s/\&\#244\;/ô/g;        #Small o, circumflex accent
    s/\&\#245\;/õ/g;        #Small o, tilde
    s/\&\#246\;/ö/g;        #Small o, dieresis or umlaut mark
    s/\&\#247\;/÷/g;        #Division sign
    s/\&\#248\;/ø/g;        #Small o, slash
    s/\&\#249\;/ù/g;        #Small u, grave accent
    s/\&\#250\;/ú/g;        #Small u, acute accent
    s/\&\#251\;/û/g;        #Small u, circumflex accent
    s/\&\#252\;/ü/g;        #Small u, dieresis or umlaut mark
    s/\&\#253\;/ý/g;        #Small y, acute accent
    s/\&\#254\;/þ/g;        #Small thorn, Icelandic
    s/\&\#255\;/ÿ/g;        #Small y, dieresis or umlaut mark
    s/^\s+//;
    return $_;
}

.conkyrc

background yes
out_to_console yes
update_interval 1.0
no_buffers yes
text_buffer_size 512
 
 
TEXT
^fg(\#444444)| ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/cpu.xbm) ^fg(\#cccccc)${cpu cpu0}% ^fg(\#444444)| ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/mem.xbm) ^fg(\#cccccc)$mem ^fg(\#444444)| ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/net_down_03.xbm)^fg(\#cccccc)${downspeed eth0} ^fg(green)^i(/home/dk/.xmonad/dzen2/icons/sm4tik/xbm8x8/net_up_03.xbm)^fg(\#cccccc)${upspeed eth0} ^fg(\#444444)| ^fg(\white)${execi 3 /home/dk/.xmonad/dzen2/scripts/centerim-notify} ^fg(\#444444)| ^fg(\white)${execi 30 /home/dk/.xmonad/dzen2/scripts/check-gmail-davkaplan.pl n 2>>/dev/null} ^fg(\#444444)^fn(-*-*-normal-*-*-*-9-*-*-*-*-*-*-*)[dk]^fn(-*-*-bold-*-*-*-10-*-*-*-*-*-*-*) | ^fg(\white)${execi 30 /home/dk/.xmonad/dzen2/scripts/check-gmail-2of1.pl n 2>>/dev/null} ^fg(\#444444)^fn(-*-*-normal-*-*-*-9-*-*-*-*-*-*-*)[2of1]^fn(-*-*-bold-*-*-*-10-*-*-*-*-*-*-*) | ^fg(green)${time %d-%m-%y %l:%M%p}
No Comments
Read More
Jul

04

DC9723 – Exploiting LD_PRELOAD slides and code examples

Filed Under (C, Code injection, Coding, Compilers, DC9723, Hacking, Linux, Linux kernel, Open source, Reverse engineering, Social, Tips & tricks) by 2of1 on 04-07-2011

Here are the slides and code examples of the talk that I gave at the 7th DC9723 meet a few weeks ago.

To all those that came; thanks – I hope you found it interesting!

No Comments
Read More
May

03

Listing all available g++ compiler symbols

Filed Under (C, Coding, Linux, Tips & tricks) by 2of1 on 03-05-2011

cpp -dM /dev/null
No Comments
Read More
Mar

29

Hebrew, Wine and Ubuntu

Filed Under (Linux, Open source, Tips & tricks) by 2of1 on 29-03-2011

If you’re having problems with Hebrew text coming up all garbled with Wine under Ubuntu, here’s the solution:
Read the rest of this entry »

(2) Comments
Read More
Mar

24

Binary output using od, cut and perl

Filed Under (Linux, Open source, Tips & tricks) by 2of1 on 24-03-2011

I came across a one-liner for printing a byte in binary embedded in an article on AVR fuses (http://electrons.psychogenic.com/modules/arms/art/14/AVRFusesHOWTOGuide.php).

I’ve extended this one-liner to output all bytes of a target in binary:
Read the rest of this entry »

(3) Comments
Read More
Mar

21

Cross-compiling x86 from x86_64

Filed Under (C, Coding, Compilers, Linux, Open source, Tips & tricks) by 2of1 on 21-03-2011

Here are two easy ways to compile 32-bit binaries on a 64-bit system.
Read the rest of this entry »

No Comments
Read More
Nov

22

bash (scripting): check for super user

Filed Under (Bash, Linux, Tips & tricks) by 2of1 on 22-11-2010

error()
{
	echo "$*. Exiting"
	exit
}
 
[ "$UID" != "0" ] && error "You must be root to run this script"
No Comments
Read More
Nov

16

Gnu screen fun

Filed Under (Linux, Open source, Tips & tricks) by 2of1 on 16-11-2010

Recently I’ve taken an interest in console-based utilities with the aim of seeing whether I can intact perhaps be even more productive than just using X-based solutions.
The best thing about this is that it would probably easily run under 100Mhz and can be accessed as-is over a terminal session.
Read the rest of this entry »

(6) Comments
Read More
Aug

17

Optimised vncviewer settings

Filed Under (Linux, Tips & tricks, VNC) by 2of1 on 17-08-2010

Run through a compresses ssh tunnel, e.g.:

ssh user@dest -L 5900:localhost:5900 -C

Optimal vncviewer command line params:

vncviewer -encodings "copyrect tight hextile zlib corre rre raw"
No Comments
Read More
Jul

29

Mounting an image with multiple partitions

Filed Under (Linux, Tips & tricks) by 2of1 on 29-07-2010

In security research, it’s sometimes necessary to mount an image with multiple partitions.

Mounting a ‘dd’ image of a single partition is trivial using mount, however mount can simply not know to deal with an image with multiple partitions, mbr, etc. (for e.g. a disk drive image).
Read the rest of this entry »

No Comments
Read More
« Older Entries
  • Recent Posts

    • GlitchMeister 1.0 – Simple, Stupid FPGA-based Glitcher
    • Friends; this memcmp() implementation?? Really!!!??
    • Decoding obfuscated strings in What’s App Dalvik Executable bytecode
    • Seculert’s Malware Reverse Engineering Challenge
    • Removal of Themida reverse engineering posts
  • Archives

    • February 2013
    • October 2012
    • July 2012
    • June 2012
    • May 2012
    • April 2012
    • January 2012
    • September 2011
    • August 2011
    • July 2011
    • May 2011
    • March 2011
    • February 2011
    • January 2011
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • July 2010
    • June 2010
  • GitHub

    2of1 does not have any public repositories.
  • qrcode

  • Site Search

  • Categories

    • Apps (7)
      • Preloader (1)
      • Symbian S60 (1)
      • VLC (4)
      • Wordpress (1)
    • Coding (32)
      • Assembly (1)
        • ARM (1)
      • C (15)
      • Compilers (5)
      • Direct2D API (4)
      • Linux kernel (3)
        • Drivers (1)
      • Networking (4)
      • Python (1)
      • Sqlite (1)
      • Version control (5)
        • Git (5)
      • VHDL (1)
    • Hacking (12)
      • Code injection (1)
      • Reverse engineering (9)
    • Hardware (6)
      • Arduino (1)
      • PCBs (3)
    • Linux (22)
      • Bash (1)
      • Tips & tricks (13)
      • Virtualization (1)
      • VNC (2)
      • Xmonad (1)
    • Open source (39)
    • Other stuffs (4)
    • Social (4)
      • DC9723 (2)
  • OctoFinderProgramming Blogs - Blog Catalog Blog Directory

    Locations of visitors to this page

© 2of1.