Hello everyone.
I'm Typhoon here.
Welcome back.
Now, at this point you have gained enough confidence to create a GitHub projects, import binaries
and initiate automatic analysis.
Now it's time to take a full control of the code browser, which is your command center for most of
your software engineering tasks.
So we will open the JIRA here again.
And in this lecture we will explore the Code Browser menu system, break down its six default sub windows
and teach you how to organize and manage windows, customize your layout, and use uh ates like entropy
and navigation bars to supercharge your analysis workflow.
Now we will open this hello world Xa.
Now normally the code browser here is crash data?
No.
So normally this code browser will open when you double click a binary file in your project.
This is a code browser.
I will make me smaller now.
Yeah.
So normally code browser opens like we did in.
We double click this hello world, the text that we imported in our previous lecture.
And yeah, it opened.
But you can also open a clean, unpopulated instance of a code browser manually from going to tools.
And here of course in this here tools run and code browser, you can run the code browser from their
debugger, emulator and version tracking.
Now this is helpful when demonstrating features without being influenced by file specific content.
And at the top you will see the main menu bar.
We have explained that in previous lecture, but don't worry, this is some this is a little different.
So you will also see the top bar which provides a quick access to frequent actions like navigating,
saving or configuring views.
Now we will walk you through each major view here.
Now we will first explore the code browser with empty.
Now here we have.
We can see the file which is standard file operations open save import export.
You can see here.
Plus it has some specific options like tool options.
Let me make I will make a little bit higher.
Me I like the tool options.
Here or for layout references configure close tool parse see source Hours, and we can also have parse
the C source to enhance Decompilation results.
We will do that in next lectures.
And we also have the edit here.
Now this includes two options for modifying global behaviors and graphical user interface settings.
Here we have the program options which is grayed out right now.
You will see that in our hello World analysis here options for view.
We will have a added options if you have different some kind of projects.
Um, now uh so we can also use the graphical user interface settings uh from going to tool options.
So we can use the like the editor, um, adjust color schemes, uh, like font size and even key bindings
here, which I don't recommend using that because the Ghidra.
Ghidra cheat sheet will help you a lot.
So the key bindings of this program is carefully designed, so I don't recommend changing it.
Just just get used to it.
Right.
But if you want to change it here here's your option.
And we have the analysis tab here.
Uh now we will go back to Code Browser uh, which we have opened with the Hello World project.
We have you can see.
Yeah.
This is a code browser.
So in analysis page, uh, which lets you run, uh, the rerun the automatic analysis or execute targeted
analysis tasks, which this is useful for refining results if the initial pass didn't catch everything.
So this basically gives you an option to reanalyze, refine and dive deeper with every pass.
So if you click on this auto analyze you will see that if analyze all open.
And one shot we will use that in next lectures.
And here we have the navigation uh which recognizes how essential smooth traversal is when jumping across
a maze of code paths and references.
Basically you can go to specific address label or expression.
We have the option of case sensitive and dynamic labels.
And we have the.
The SIM we can go to the symbol source next function and so on.
So we have we have and we also can clear the history.
We have the search here.
This is a core analytical weapon here which you can locate the strings, instructions, scalars, references
or like patterns at all to tell you a story.
We have the select which supports scoped operations where choosing what to analyze is as important as
is how.
Now we also have the yeah, we also have the tools which brings extra intelligence such as referring
processor manuals or launching advanced utilities.
So if we click on that now the Gator could not find the procedure manual for this.
The.
But of course there's in internet there's everything we can find the processor manual for this, which
is as popular as it gets.
This is just a 32 bit portable executable file here.
And yeah, we have the windows.
Uh, by the way.
You will, uh, we will use the graph in the next lecture.
Uh, this will be very useful and very advanced feature of Ghidra.
So I like that graph.
We will have a separate lecture about the graphs here.
But basically you can graph the block flow.
Here the graph is uploaded right now.
Yeah.
Don't worry.
And we have the windows here which reflects uh your control over workspace ergonomics.
We have pie graph function call graph.
Like we can choose everything here.
And uh the help.
So this is an underappreciated asset.
It is not as useless as Windows Help gets.
Uh, which I haven't seen an instance where Windows Help or Windows Network Help has helped with me
something.
So don't worry, this this will come pretty handy.
Here.
And yeah, that's how Ghidra the main toolbar works.
And understanding Ghidra layout isn't just about knowing where the things are, it's about internalizing
how they work together.
Now each window, each bar, each pop up is a part of a dialog between you and the program you are reversing.
Now it reflects the principle which is reverse engineering is more than decoding.
Now it's about reasoning through complexity.
Now in the next lecture, we will start exploring how to go beyond the manual using scripting and automation
to make it do more more of a heavy lifting for you.