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
File Format Exercise
variable
analysis
gcc
pattern
binary pattern
constructor
veh
mapping
IDA Pro
exception handling
time shift
fastcall
automatic variables
define
calling convention
COFF
assembly
exit sequence
Solutions
AMD64 ABI
cleanup
type cast
RE-Google
disassembler
signed int
esp
data structure
dec/jnz
exploitation
alias
table
float
arbitrary
unsigned short int
mathematic
optimization
signed short int
constant
assignment
code functions
cdecl
assembly language routines
decompilation
obfuscation
wchar_t
loader
compound
faq
stack
pointer
64 bits
thunk
bool
shadow space
structured exception handler
arithmetic
ASLR
PE
device
equality
predicate
relational
plugin
file format
SAFESEH
import
xm
Video
x64
printf
arguments
destructor
return values
double
modulo
architecture
amd64
manual
faqs
unsigned long int
parameters
unwinding
shift
mitigation
Splish 1
exercise
tom duff
section
music
exception handler
return address
BeatriX
stack location
SEHOP
callee clean-up
RVA
EMET
visual studio
member function
toolkit
news
variable argument
argument
loop
disasm
casting
point values
unsigned int
opaque
floating point numbers
frame function
intel 64
Google
Binary Auditing
registers
stack pointer
unsigned char
stack frame
seh
signed char
evaluation
caller clean-up
BeaEngine
win32 api
header
case label
vectored
microsoft x64
routine
microsoft
algorithm
long double
array
signed long int
library
PeLib
keygen
operator
Splish 2
exception
math
youtube
entry sequence
pseudo code