PublisherFans
oalabs

oalabs

patreon


oalabs posts

IDA Reverse Engineering - Module 2

Module 2, Part 1 of our IDA reverse engineering series. A step by step guide to marking up Windows PE binaries using IDA. In this tutorial we begin our analysis of the extracted Stage 2. binary. We focus on the entry point of an EXE file, and the CRT main "boilerplate" code.

This is a very basic tutorial that introduces the concept of Structs, Arrays, custom Enums, and nested data structures.

Sample

2025-02-03 15:00:15 +0000 UTC View Post

IDA Reverse Engineering - Module 1.2

Module 1, Part 2 of our IDA reverse engineering series. A step by step guide to marking up Windows PE binaries using IDA. In this tutorial we continue our analysis of the stage 1 DLL diving into the only export "work".

This is a very basic tutorial that reinforces the concept of Function Definitions, Types, variable Names, Enums, and the "API-first approach" to reverse engineering. We also have a small explainer about string ope...

View Post

IDA Reverse Engineering - Module 1

Module 1, Part 1 of our IDA reverse engineering series. A step by step guide to marking up Windows PE binaries using IDA. In this tutorial we open our sample DLL in IDA and mark up the DLLEntryPoint and DLLMain.

This is a very basic tutorial that introduces the concept of Function Definitions, Types, variable Names, Enums, and Type Libraries.

Sample

View Post

Live Stream VOD: Chinese RJ45-USB "Malware" Full Analysis - Part 2

In this stream we continue our analysis of "malware" that was apparently automatically launched from a USB Ethernet adapter. In this part we investigate the sandbox results from Hybrid Analysis and ANYRUN which led the original discoverer to believe this was malware!

Sample

2025-01-14 15:02:02 +0000 UTC View Post

Live Stream VOD: Chinese RJ45-USB "Malware" Full Analysis - Part 1

In this stream we analyze "malware" that was apparently automatically launched from a USB Ethernet adapter. We reverse engineer the code line-by-line to confirm that nothing is malicious.

In Part 2 we will analyze the sandbox results that lead to the incorrect conclusion that this was malware... stay tuned!

Sample

2025-01-14 15:00:12 +0000 UTC View Post

IDA Reverse Engineering - A Boring Introduction

This an introduction to our series on basic reverse engineering with IDA. It's boring and very much worth watching.

View Post

x64dbg Scripting - Logging C Runtime String Operations

Just a quick tip and some x64dbg scripts that can be used to spy on the C Runtime interface. This will only work if the C Runtime is dynamically linked which is uncommon for msvc compiled malware, but is the default for gcc/minGW compiled malware.

Scripts

Live Stream VOD: The Many Faces of CryptBot

In this Twitch stream we explore the past two years of CryptBot iterations as the developers attempt to distance themselves from the original stealer.

Samples

Live Stream VOD: Spectre RAT Exposed

In this Twitch stream we triage Spectre RAT a commodity "implant" used in targeted e-crime intrusions. The RAT is written in C++ and we exploit some silly design choices by the developer to simplify reverse engineering!

πŸ™‰ My OBS crashed half way through the stream but I managed to recover the full VOD, apologies for the technical difficulties.

Sample

  • Packed 
    74f30466c1edb8daf729df5531e6047e69cfbcd062...

    View Post

C++ Strings and C Runtime (CRT) Reverse Engineering Tips

in this tutorial we examine C++ strings initialized in the CRT __initterm and how to take advantage of this setup when reverse engineering malware with encrypted strings.

Resources

C++ Strings for Reverse Engineers

identifying and correctly typing C++ strings is the first step towards easier C++ reverse engineering. In this tutorial we walk through the mechanics (and code) behind the standard strings in C++

Resources

The C++ strings types header can be found here: cppstrings.h 

Below is an IDA cheat sheet from 2024-11-17 15:00:09 +0000 UTC View Post

Reverse Engineering Lab Setup

If you are just getting started with reverse engineering this the place to start. In this tutorial we provide an overview the current setup that we currently run, this is also the same setup used in all of our live streams and tutorials.

About FlareVM

If you have been with us for a while you may remember that we used to recommend Fla...

View Post

Tropical Live Stream VOD: Latrodectus

In this Twitch stream we take a look at the new Latrodectus variant which uses AES to encrypt its strings. Instead of writing an AES string decrypter we take a generic "black box approach" using emulation to simply emulate the full decryption algorithm.

Samples

5cecb26a3f33c24b92a0c8f6f5175da0664b21d7c4216a41694e4a4cad233c...

View Post

Intercepting HTTP Traffic With The Debugger

In this tutorial we demonstrate how to use x64dbg to intercept network traffic in a target process. We are using Lumma Stealer as an example but the approach is roughly the same for all malware.

References

Tropical Live Stream VOD: Polyglot Emmenhtal Analysis

Is it a benign PE file, is it a malicious HTA script? In this live stream we explore an interesting polyglot loader! Short and sweet, hope you all like scripts!

Sample

dd52a6b3e9d1f368ed000d5a506331ce5b3f194512f9d075b494510ae1583a1f  [UnpacMe]

Notes

2024-09-24 17:03:08 +0000 UTC View Post

Tracing The Pain Away Module 6 - Introduction to DTrace

An introduction to DTRace and D-generate.

References

Tracing The Pain Away Module 5 - Dynamic Binary Instrumentation with PIN

An introduction to DBI with PIN and TinyTracer.

References

Tropical Live Stream VOD: Zharkbot Dynamic Analysis

In this live stream we take a different approach to analyzing the annoying string encryption in Zharkbot; dynamic analysis!

Sample

1aa0622a744ec4d28a561bac60ec5e907476587efbadfde546d2b145be4b8109 [UnpacMe]

Notes

2024-09-07 14:00:08 +0000 UTC View Post

Tracing The Pain Away Module 4 - Instruction Tracing

Instruction tracing with x64dbg.

References

Tracing The Pain Away Module 3 - Syscalls

Syscall tracing with x64dbg.

References

Tropical Live Stream VOD: Dynamic Python Deobfuscation Attacking The Interpreter

In this live stream we analyze an unknown python stealer that comes bundled as a PyInstaller, but instead of static analysis we opt for dynamic analysis with x64dbg!

Sample

2a19ba63e85ce75d5f2d884011dfc94f616b176ed89a67c1acc0fe2179e8b591 [UnpacMe]

Notes

2024-09-01 01:24:13 +0000 UTC View Post

Tracing The Pain Away Module 2 - Debugger Basics

Introduction to API tracing with the debugger.

References

Tracing The Pain Away Module 1 Part 2 - Code Obfuscation Basics With VM Protection

A brief overview of how VM protection works.

References

Lab 0 - Introduction

This is a good time to make sure your tools are installed and working. Read through the I...

View Post

Tracing The Pain Away Module 1 Part 1 - Introduction to Static and Dynamic Analysis

A quick refresher on static vs. dynamic analysis.

View Post

Tracing The Pain Away Introduction

Tooling Setup

To complete the labs you will need the following setup. 

  • Windows VM running at least Windows 10 (64bit) 20H1, later versions of 64bit Windows are also acceptable including Windows 11.

  • A copy of IDA installed, IDA Free will work fine if you don’t have a license.
    2024-08-26 14:00:13 +0000 UTC View Post

πŸ‘‹ DEF CON 32

Hey Reverse Engineers,

Long time no post! if you are wondering why it has been two weeks since our last stream we have been busy putting the final touches on our DEF CON workshop! Sadly tickets have already sold out but if you show up at the door you may get lucky!

Also, for those of you not attending, no worries! A video version of the training will be up on Patreon once we get back (give us a week of editing time)

We wi...

View Post

Live Steam VOD: New Rust Packer Protects Zharkbot

In this twitch stream we take a look at a new packer being used to protect the latest version of Zharkbot... plot twist, the packer is written in rust!

Sample

068ef78225ab94c3f9c228d6248911986c23317d269f0bb5d0a46bd15cd93e80 [UnpacMe]

Notes

2024-07-15 14:00:14 +0000 UTC View Post

Tracing Memory With X64dbg and Advanced Breakpoints

In this tutorial we combine multiple concepts and transform x64dbg into a memory tracing tool using conditional breakpoints. Many of the concepts used in this tutorial build on our previous tutorials. The following may be helpful for a deeper explanation of the topics discussed.

Tutorials

Live Steam VOD: RansomHouse Part 2 - PE Rebuilding

This is the second part in our analysis of RansomHouse ransomware loader. In this stream we rebuild a custom PE format used by the loader.

Sample

acf361296c9e1cf5b4ceff11e1790c57e6e1d753df9bef087aadad256dc5a123

No notes, just pure RE and...

View Post

Live Steam VOD: RansomHouse Part 1 - Password Protection

Back to basics, full reverse engineering! In this stream we investigate how the password protection feature works on RansomHouse/WhiteRabbit ransomware.

Sample

acf361296c9e1cf5b4ceff11e1790c57e6e1d753df9bef087aadad256dc5a123

No notes, ju...

View Post