📚 OpenRCE is preserved as a read-only archive. Launched at RECon Montreal in 2005. Registration and posting are disabled.








Flag: Tornado! Hurricane!

 Forums >>  Brainstorms - General  >>  The First 2 Seconds

Topic created on: June 18, 2005 02:04 CDT by hoglund .

I've recently been interested in the first 2 seconds that occur when you are faced with a new binary.  You may think many things before you ever see a binary, but here are things you only feel when you first look at it.  You get this initial reaction - it says, "I can break this thing" - and I really want to know what makes people think that.  What is it?  In that first glimpse of IDA disassembly, what tells you that?  I think you can tell things about people's code.  It's a joke around my company - we actually try to follow individual coders around -they make mistakes in one place, they will make it again somewhere else.  In once case (without mentioning names) we followed this one guy from one fortune 500 to another fortune 500 - and he kept writing buffer overflow bugs into cell fones. Is it that - a 'gist' of someone's coding mistakes, or style?  Or, is it more than that? - Is there something fundamental that you notice?  Or, is it just that the code is buggy or not well structured?  

  drew     June 19, 2005 22:06.41 CDT
For me the quality of the software engineering has been a great indicator.  The installation and first run of the program gives an overall impression of the level of software engineering.  If the software doesn't behave gracefully on the first run, then it certainly won't behave gracefully under testing.  Similarly if the installation is overly complex, then there will be all sorts of fun unintended consequences.

  JCRoberts     June 21, 2005 19:00.31 CDT
Greg,
You work in the world of "security" as do the majority of people using disassemblers these days, so your goals are vastly different than mine. The secruity folks are either looking for an exploitable mistake in an application or in the case of anti-virus, looking for how the malware exploits a system.

In the field of compatibility, it's a different beast completely. The goal is not exploitation, instead it's understanding enough to either integrate or replicate an executable binary. Considering what I've read in your books and security books by others, I think I've got the easer job of the two since the only time I need to tackle unintended consequences is when such bugs are used as features.

The first two seconds or less where I say "I *can* understand this thing" can be attributed to a combination of blind faith in myself and unrealistic determination. Most games are won or lost before the first move is made and analysis of software is really no different. In other words, I think just believing you can do it becomes somewhat of a self-fulfilling phrophecy as long as you're willing to do the necessary work.

JCR

  ryanlrussell     June 21, 2005 23:48.54 CDT
Yup, I have to agree with JCR.  It's like board-breaking, a matter of faith.  You don't fail until you decide to give up.

  halvar     June 22, 2005 02:50.06 CDT
Auditing (until fully automated formal methods come along,
and possibly beyond for logic issues) is a contest in bone-
headedness. You do not go into a boxing match contemplating
the possibility of loss, but even if you know your opponent is
too strong you try to convince yourself that he isn't. If
you convince yourself long enough, then you might wear him
out.

  BillyBoBob   June 24, 2005 11:58.32 CDT
This sounds kind of trite, but very often my first thought is "I wonder if I got the right binary"; I have been misleaded to the wrong DLL, etc. so many times... worst case I ran down something for 2 weeks, got to the end only to discover that I was chasing in the wrong DLL and hence ended up at the goal with something insanely trivial. I took a long walk and rued the day I quick smoking...

Outside of that, the very first things I am usually trying to think of is "If I was writing this, how would I organize it?", i.e. trying to put myself in the mindset of the creators.

If you have the time, dedication and fortitude, any binary can be opened up to find whatever you are seeking.

  mobiusdrux   June 26, 2005 01:16.29 CDT
You said -- (Hoglund) "he kept writing buffer overflow bugs into cell fones. Is it that - a 'gist' of someone's coding mistakes, or style? "

1. He didn't spend part of his life programming an IBM 360/70..learning machine code and assembly and getting "IDIOT" on his forehead.
2. He did, and is planting an backdoor...trojan code...to execute and get free access...
3. send me PM the code let me take a look >:) rofl
-------
the first 2secs I mutter...
run it..clock it.. rip it and make it better...you can always do that...

remember the "game of life" and Corebots?


  hdm     June 26, 2005 17:51.46 CDT
For me, the "two seconds of enlightenment" occur when I look at the executables import list. Nothing says "rootme" like using a 6 year old static msvcrt library. The next two seconds are usually finding sprintf/strcat/wsprintf and ^X'ing them to see how many times they are referenced in the top of the .text...

Note: Registration is required to post to the forums.

There are 31,328 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
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
Question about memor...
Dec/12


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
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
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
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...

oleavr
Jun/25
Build a debugger in 5 minutes

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