2

I'm trying analyze study example. Some article illustrates radar2 work, and there radar2 resolve string by XREF:

0x00400ee4    be00244000   mov esi, str.Border_relations_with_Canada_have_never_been_better. ; "Border relations with Canada have never been better" @ 0x402400

But my instance of radar2 prints:

0x00400ee4    be00244000   mov esi, str.BorderrelationswithCanadahaveneverbeenbetter. ; CODE (CALL) XREF from 0x00401338 (unk)

How I can see this string? Maybe I must specify some settings? (P.S. Miscusi my English, if it incorrect)

UPD: using strings ./binaryFile | grep someTemplate, I find string... but radare2 behaviour has higher priority. Therefore this string exists in file.

1 Answer 1

4

This seems like the version of radare that you're using is slightly different from the version that has been used in the example.

Note that the 2nd argument to mov esi, is not the string itself, it's the address of the string in memory. radare detects what looks like a string, generates a label at that address, and uses the label as a synonym for the address in the mov esi instruction.

As labels cannot contain blanks, radare has to handle them in some way. Seems the example version of radare replaces them with underscores, while your version just omits them. But, this is the name of the label, not the real string, and if you display the memory at that location, you should see the real string, including the space characters.

1
  • excellent shot! Author recommends to install radare2 from git-repo, there is version 0.10.2. Ubuntu repository get me version 0.9.6. Thanks!
    – LXA
    Commented Apr 16, 2016 at 6:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.