Flag: Tornado! Hurricane!

 Forums >>  Brainstorms - General  >>  Understanding compilers ASM output

Topic created on: April 11, 2013 10:50 CDT by nopsledshell .

i would like to get information about the output generated from two compilers (GCC and Visual CPP) - what the code below do? what was the original source code? what is the difference between those two compilers when generating the assembly code?

gcc:
mov edx, [ebp+var_4]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
add eax, edx
mov [ebp+var_8], eax

Visual CPP:
mov ecx, [ebp+var_4]
sub ecx, 1Eh
neg ecx
sbb ecx, ecx
mov [ebp+var_C], ecx

  codeinject     April 12, 2013 02:03.01 CDT
Please read http://www.binary-auditing.com/

  nopsledshell   April 14, 2013 02:32.20 CDT
Binary Auditing is a large and detailed, any particular part? module? exercise?

i don't have the HLL code to compare but i can guess that those two code parts calculate something as function of [ebp+var_4]

the first code looks like multiply of 13 (which suitable to this size of data structure) and the result is in  [ebp+var_8]
correct?

the second looks like calculating one bit (0 or -1) and the result in [ebp+var_c]
correct?

it was taken from Chris Eagle slides (Black Hat few years ago)

Note: Registration is required to post to the forums.

There are 31,099 total registered users.


Recently Created Topics
How to view IDA Pro'...
Nov/02
reverse MC9S12DG128
Oct/07
Looking for an advan...
Mar/21
Ultimate Hacking Cha...
Jun/21
CreateMutex
May/31
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15


Recent Forum Posts
Looking for an advan...
tthtlc
Looking for an advan...
tthtlc
Looking for an advan...
clightning
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo


Recent Blog Entries
nieo
Mar/22
Android Application Reversing

halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit