Reverse Engineering Made Easy: Operand Offset Structs in IDA

2024-04-05 | #category_ida_tips #topic_ida_offset_struct

1. Motivations

Struct, short for structure, is an important concept in many programming languages. A struct can contain different variables, each of which can be a different data type. Struct allows programmers to group many fields into a structured group for easier processing, storage, and access. Therefore, structs are used in almost all applications.

Continue reading 


A Simple Windows Shellcode

2024-03-01 | #category_shellcode #topic_pe_header #topic_peb #topic_stack_string #topic_teb #topic_windows_internals #topic_x86

1. What Is A shellcode?

The name shellcode came from its original use to spawn a system shell in exploits after attackers successfully exploit vulnerabilities in software and redirect execution to the injected code. In general, a shellcode is a set of instructions that can be loaded and executed at any memory address (i.e. Position-independent code). Therefore, it cannot contain hard-coded addresses and must use reliable techniques to load or resolve addresses of the APIs/functions it needs.

Continue reading 


Hello World x86

2024-02-01 | #category_assembly #topic_calling_convention #topic_decompiler #topic_inline_assembly #topic_machine_code #topic_stack #topic_stack_string #topic_x86

Hello, World!

Programming is one of the most important skills in computer science. Typically, beginners take their first step into a new programming language by writing the iconic “Hello, World!” program. To maintain this tradition and encourage beginners to establish a strong foundation for their future work, my first blog post will be about a “Hello, World!” program, this time written in x86 assembly.

Continue reading 


Tagging Strategy

2024-01-22 | #category_house_keeping

Why

A “tag” is a keyword or label assigned to a post to categories it and make it easier to organise and search for. Tags help in classifying content based on its subject matter or key topics. Therefore, sharing my tagging strategy will help you navigate this blog and fully utilise its contents.

Continue reading 