0

Before I begin I want to say for whatever reason the site wouldn't let me post this unless I didn't have the coding so I just linked it instead of it being here.

This is most likely the most stupid post on this website but I really want to figure out how to do this. Anyway I am trying to read the Call of Duty: Black Ops 3 code because I am interested in it. So what I did is I extracted the files from the .EXE into another folder. The files have the extensions .rsrc, .data, .idata,m .interpr, .pdata, .rdata, .reloc, .rsrc_1, .text, .tls, _RDATA, and there is a certificate. Anyway whenever I try to open any of these files it shows just tons of non legible text. There is some but not very much. Here is a part of the .text just so you can see what I am talking about.

http://pastebin.com/2tzAM7xm

That one just looks like straight up Japanese or something. The more common thing I see is something like this though. This is a part from the .data

http://pastebin.com/qZtS5R8C

Any help on how to get these files to a way to read them? Again sorry for being dumb.

1
  • 3
    Here is a heads-up warning: you yet don't know enough about what you are doing ... First, what you "extracted" out of the EXE are definitely not 'files'. They are just the executable's different sections, and it makes no sense to regard them as separate entities. Most of all, you seem surprised you don't see 'code' but only 'Japanese text'. It really, really sound you expected to find ... readable code? C instructions? Python? This is executable code (well, at least the part you extracted as '.text' is). Please read up on all of this.
    – Jongware
    Commented Jul 24, 2016 at 19:22

1 Answer 1

7

Windows applications (.exe) generally use file format called "Portable Executable" (PE). The "files" that you extracted are actually sections of that PE file (see Common Sections in Peering Inside the PE: A Tour of the Win32 Portable Executable File Format).

The code of the application is in the .text section, the .text file that you have actually contains the code. But that code is machine code, which is binary encoded, not readable text.

But there is not much reason trying to understand the machine code by yourself. What you should do is to use a disassembler or a decompiler.

A disassembler will produce assembly: accurate textual representation of the machine code. But assembly is still pretty hard to understand, and not many people know it, which is where option 2 comes in.

A decompiler will produce higher-level code, in a language like C. Such code might be almost readable, but it likely won't be very close to the code the programmer of the application wrote, because decompiling machine code is a hard problem.

TLDR: If you know assembly, get a disassembler. If you know C (or a similar language), get a decompiler. If you don't know either, you have lots to learn.

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