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