0

I am working on a crackme and I have found a buffer overflow but when I enter \xNN, where N is anything between 0 and F, the \ and x are interpreted as their own values. I also tried \xNN.

The program is a Linux executable so I am running it on backtrack. The program handles input and is not part of the command line call. I looked at the program in ida and the input is done by __isoc99_scanf.

I can type in Unicode but 04 is problematic so I need to figure out how to use hex.

If someone has a recommendation other than hex that would be great too.

Jav_Rock
  • 22,059
  • 20
  • 123
  • 164

1 Answers1

0

What do you mean "not part of the command line call" ? If it is on console, you can use

perl -e 'print "\xNN" | program.

or even

perl -e 'print "\n\whatever\xNN"' | program.

to simulate addition input. Output from stdout goes directly to the stdin of the program just as if you were typing the chatacters. If it is a graphical application you can always patch the bytes directly (easier said than done though, here's how to do it on gdb).

dtouch3d
  • 133
  • 1
  • 7