Live data from Hacker News

Reverse engineering guide for beginners: Methodology and tools

0x00sec.org

11–20 of 70 posts

Re: Reverse engineering guide for beginners: Methodology and tools

#11
post #10

Earlier quoted context omitted.

Nobody in tech thinks RE stands for regular expression...

Search Google for "re documentation" and look at some of the results.

Google is effectively aliasing RE to regular expression. None of the links use "RE" as an acronym. Regex/Regexp has always been the accepted acronym.

Re: Reverse engineering guide for beginners: Methodology and tools

#12
post #8

I'd love to know more about disassembly. I've recently had more and more reason to go deeper into applications I'm running as dependencies. A few issues I've found and fixed just by using strace to get an idea of the system calls. There was one thing in particular where I knew there was a jump somewhere (if some_length I wanted something that could give me a few seconds worth of samples of where the instruction regis…

AFL automates this to a large degree. It doesn't do it with the type of machine control and monitoring you are asking for, but if you can instrument it with AFL, this is a perfect use case for it. It will do the hard work for you.

If you want to control the computer, you have options. Qemu can give you fine grained CPU level logging you want: http://moyix.blogspot.jp/2014/07/breaking-spotify-drm-with-p... -- this is an article that walks through logging them instructions. (https://github.com/panda-re/panda)

Finally there are RE frameworks where you can instrument (hook) function calls (Frida being a good cross platform option).

I would try AFL first. But playing with Panda can be really fun too.

(edit: and a colleague just pointed out -- https://github.com/angr, which will also let you work right at the level you want to, I think).

Re: Reverse engineering guide for beginners: Methodology and tools

#13
post #10

Earlier quoted context omitted.

Search Google for "re documentation" and look at some of the results.

Google is effectively aliasing RE to regular expression. None of the links use "RE" as an acronym. Regex/Regexp has always been the accepted acronym.

They do though. RE is a python library, an Erlang library, there's a reference to perlre, clojure calls it re, etc. Then there's the C lib pcre.

Also Google chooses to alias certain things for a reason.

Re: Reverse engineering guide for beginners: Methodology and tools

#14
post #8

I'd love to know more about disassembly. I've recently had more and more reason to go deeper into applications I'm running as dependencies. A few issues I've found and fixed just by using strace to get an idea of the system calls. There was one thing in particular where I knew there was a jump somewhere (if some_length I wanted something that could give me a few seconds worth of samples of where the instruction regis…

It's not free, but IDA Pro has tracing functionality similar to what you want. There are bootleg copies if you look hard enough, an old version (5.0) free for windows only, and feature limited demos.

Re: Reverse engineering guide for beginners: Methodology and tools

#15
post #8

I'd love to know more about disassembly. I've recently had more and more reason to go deeper into applications I'm running as dependencies. A few issues I've found and fixed just by using strace to get an idea of the system calls. There was one thing in particular where I knew there was a jump somewhere (if some_length I wanted something that could give me a few seconds worth of samples of where the instruction regis…

What you want is a hit tracer.

A hit tracer sets a breakpoint at the beginning of every basic block, and records and clears every breakpoint hit (so the performance hit is relatively low).

You'd use a hit tracer to record a "baseline" of your target program when it's not doing the thing you care about. Then you'd run the program again and trigger the behavior. Then you'd diff the traces.

AFL is doing something related when it explores states in targets.

There are a lot of free hit tracers, but they're also kind of a build-your-own-light-saber deal. If you have a Python debugger library and a disassembly, a hit tracer is close to "hello world".

Re: Reverse engineering guide for beginners: Methodology and tools

#16
post #8

I'd love to know more about disassembly. I've recently had more and more reason to go deeper into applications I'm running as dependencies. A few issues I've found and fixed just by using strace to get an idea of the system calls. There was one thing in particular where I knew there was a jump somewhere (if some_length I wanted something that could give me a few seconds worth of samples of where the instruction regis…

>I wanted something that could give me a few seconds worth of samples of where the instruction register was spending its time

You could write this with Pin [1], but I'd be surprised if there wasn't a profiling tool with instruction level analysis available. If there truly isn't, then there are Pin examples that can be pretty quickly modified to achieve this.

1. https://software.intel.com/en-us/articles/pin-a-dynamic-bina...

Re: Reverse engineering guide for beginners: Methodology and tools

#19
post #18
post #5

Blank page without javascript. Bye.

0) that's most definitely not blank page, I have noscript and it does load content. 1) what kind of response is this?

I have JavaScript enabled and it showed a blank page for me too, I had to reload the page a couple of times, I guess it's getting some traffic from HN
Post reply on HN