# Concepts

## String Abusing in IDA:

This concept is searching a string in IDA and finding a function.\
Now, how does this work?

**String abusing with a PDB (Debug symbols/most functions are named):**

Open a game with a PDB in IDA, I will be using the 4.21 game.\
In the functions window, search for "FName::GetNames".\
Now, we use "%d.%d.%d.%d.%d.%s" to find GetNames.\
If you scroll down a little, you will see the same exact string.

**String abusing with a PDB example:**

This works for any function, let's take a look at UCheatManager::Ghost.\
If you look at the function you should see a string right under it "You feel ethereal".\
Let's go look at our IDA for Fortnite and search for that string.\
And if you compare it looks the same! Now, you may rename the function.\
Congrats! You've done it.

## Fortnite Encryption/Decryption:

Fortnite encrypts GNames/FNamePool.\
To decrypt the names, you have a couple of options.\
You can call GetPlainNameString, ToString, or directly call the decrypt name function.\
This is what makes Fortnite and other games like PUBG less beginner-friendly, and way fewer people are willing to help. They encrypt names starting on 1.10 aka UE4.19) (Season 2, not one it's weird).

## How to Create Sigs/Offsets in IDA:

To create a signature (pattern/sig, etc.), I recommend an IDA plugin like SigMaker.\
To create an offset, you need to get the image base (scroll to the top while in IDA View tab).\
And then minus it by the address of the variable/function.\
You can find the address in .text0000(Address) or .(r)data0000(address).

## How to go to strings (aka use strings):

Open the strings window (SHIFT + F12), search for that string (CTRL + F) For example,

![Now double click the string that you searched](https://3410289849-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MggkitJ0NFt_wPuIvg5%2Fsync%2F3b2ce488e4451e60044bfa1a45226b1124bad93e.png?generation=1628649893529567\&alt=media)

Double click right here,

![](https://3410289849-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MggkitJ0NFt_wPuIvg5%2Fsync%2Ff5de5c07e132f82b97bdf5e4215060ed7f77d79e.png?generation=1628649892488891\&alt=media)

and that's it!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://milxnor.gitbook.io/finding-functions-in-fortnite/concepts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
