The famous “Duff’s device” in C makes use of the fact that a case statement is still legal within a sub-block of its matching switch statement. Tom Duff used this for an optimised output loop. Duff’s device is an optimized implementation of a serial copy that uses a technique widely applied in assembly language for loop unwinding. It is perhaps the most dramatic use of case label fall-through in the C programming language to date.
Recent Tweets
- Sorry for the delay for new content. I try to start adding new stuff until end of this month... Too much university at the moment.
- Sorting upcoming challenges....
- Exercises Splish 1 and Splish 2 solved... http://www.binary-auditing.com/2010/08/first-2-exercises-splish-1-and-splish-2-solved/
- Support forum opened now! Ask all your challenge and Binary Auditing relevant questions! http://reverse-engineering.net/viewforum.php?f=87
- Want to submit your solution? First 3 challenges available now at our Crackmes.de channel! http://crackmes.de/users/the_binary_auditor
- Video section disabled until I solve this YouTube shit... maybe tomorrow better luck
- YouTube sux... the videos get blurry and smaller in size... anyone any solution?
- What solution for community support? Forum vs. Help Desk vs. Bug Tracker?
- @darrenmeehan Yes, we try to offer seomething like this. Maybe we disable all the old exercises and start from beginning...
- Our plans for the future of The Binary Auditor. http://is.gd/eu3Gr
Tags
signed char
xm
tom duff
mathematic
automatic variables
algorithm
gcc
pseudo code
Binary Auditing
stack pointer
toolkit
double
SAFESEH
cdecl
arithmetic
floating point numbers
long double
time shift
device
vectored
shift
x64
caller clean-up
variable
dec/jnz
array
mapping
signed int
signed long int
exception handling
decompilation
unsigned char
BeaEngine
veh
Splish 1
Video
architecture
mitigation
case label
manual
win32 api
fastcall
exception
faqs
keygen
exploitation
intel 64
File Format Exercise
AMD64 ABI
visual studio
assembly
IDA Pro
SEHOP
COFF
data structure
unwinding
printf
library
evaluation
structured exception handler
Splish 2
variable argument
modulo
news
return values
define
microsoft
exit sequence
loop
amd64
Solutions
stack location
parameters
opaque
import
RVA
file format
callee clean-up
pointer
unsigned short int
arbitrary
PeLib
Google
section
esp
bool
64 bits
code functions
constant
stack
PE
pattern
binary pattern
arguments
cleanup
frame function
wchar_t
faq
unsigned long int
operator
exercise
constructor
seh
equality
predicate
assembly language routines
stack frame
assignment
analysis
disassembler
optimization
shadow space
alias
exception handler
registers
relational
header
unsigned int
compound
type cast
disasm
routine
BeatriX
RE-Google
microsoft x64
member function
EMET
destructor
math
signed short int
calling convention
float
obfuscation
casting
ASLR
youtube
music
argument
table
return address
plugin
loader
entry sequence
point values
thunk