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,055 total registered users.


Recently Created Topics
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
How to get data depe...
Jul/07
Identify RVA data in...
May/06
Immunity Debugger Re...
Aug/03


Recent Forum Posts
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
OOP_RE tool available?
Bl4ckm4n
OOP_RE tool available?
van7hu
Should binaries be n...
Kolisar
Problem with ollydbg
nullx42
!findtrampoline Immu...
skycrack


Recent Blog Entries
crystalwade
Jul/20
test

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 ...

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