Advertisement · 728 × 90

Posts by Nicolò Altamura

Preview
GitHub - seekbytes/ptxNinja: Binary Ninja plugin for reverse engineering PTX -- the virtual instruction set architecture of CUDA-based GPUs. Binary Ninja plugin for reverse engineering PTX -- the virtual instruction set architecture of CUDA-based GPUs. - seekbytes/ptxNinja

The recording of my talk "Challenges in Decompilation and Reverse Engineering of CUDA-based Kernels" at @re-verse.io is now online!

Recording: www.youtube.com/watch?v=ns5j...

Slides: nicolo.dev/files/pdf/re...

Binary Ninja plugin: github.com/seekbytes/pt...

1 month ago 0 3 0 0
Diagram titled “Transformer attention.” It shows three steps of the attention computation with code snippets beside each step. The first step is “Scale factor 1/√dₖ,” highlighting code that computes the reciprocal square root. The second step is “Dot product Q · K,” showing code performing a dot-product accumulation. The third step is “Scaling + max tracking,” highlighting code that multiplies by the scale factor, stores the value, and updates a running maximum. The phrase “Transformer attention” appears prominently in the center.

Diagram titled “Transformer attention.” It shows three steps of the attention computation with code snippets beside each step. The first step is “Scale factor 1/√dₖ,” highlighting code that computes the reciprocal square root. The second step is “Dot product Q · K,” showing code performing a dot-product accumulation. The third step is “Scaling + max tracking,” highlighting code that multiplies by the scale factor, stores the value, and updates a running maximum. The phrase “Transformer attention” appears prominently in the center.

The slides from my @re-verse.io talk, "Challenges in Decompilation and Reverse Engineering of CUDA-based Kernels", are now online!

Slides: nicolo.dev/files/pdf/re...

Plugin: github.com/seekbytes/pt...

1 month ago 6 2 1 0
Disassembling a binary: linear sweep and recursive traversal Building your own set of analysis tools is a great exercise for those who already have some basics and allows you to later move on to implement more targeted analyses in reverse engineering. Even just...

Disassembly algorithms are often a trade-off. My new blog post analyzes linear sweep and recursive traversal, exploring their strengths and weaknesses in a self-built disassemblers.

nicolo.dev/en/blog/disa...

1 year ago 3 1 0 0

I’ll be speaking at RE//verse 2026 about reverse engineering CUDA-based kernels.

Don’t miss the opportunity to learn more about CUDA and challenges for decompilation!

3 months ago 3 1 0 0

It was a great honor to share the stage with Tim to present MBA deobfuscation using our powerful BinaryNinja plugin.

An incredible experience at REcon 2025 — thank you to everyone who made it unforgettable! Check out the recording!

6 months ago 4 1 0 0

We just presented our new Binary Ninja plugin for deobfuscation of Mixed Boolean Arithmetic expressions at REcon25. Check it out!

9 months ago 2 1 0 0

We just presented our new Binary Ninja plugin for deobfuscation of Mixed Boolean Arithmetic expressions at REcon25. Check it out!

9 months ago 2 1 0 0
The Role of the Control Flow Graph in Static Analysis The flow control graph is an important building block in static program analysis for applying a variety of analyses that consider the flow of a program. The “flow”, described informally, represents the evolution of the program during execution time, that is, at which the CPU jumps in order to continue program execution. The graph (also called CFG for brevity) allows the first high-level elements of software to be derived in a general way from a low- or medium-level representation (we cite as an example assembly code or intermediate code). High-level elements include high-level loops (while or for loops) and execution branches (switch, if, else) that can be critical in identifying how execution evolves over time.

Control Flow Graph is a critical element for any binary analysis framework, but its role has been underestimated sometimes (I'm looking at you, Ghidra!).

nicolo.dev/en/blog/role...

1 year ago 2 2 0 0
Video

New #BinaryNinja plugin: Obfuscation Analysis

Simplifies arithmetic obfuscation (MBA) directly in the decompiler (see demo below). Also identifies functions with corrupted disassembly.

Co-authored by @nicolo.dev; available in the plugin manager.

github.com/mrphrazer/ob...

10 months ago 21 9 1 1

Excited to announce that together with Tim Blazytko, our talk has been accepted to REcon 2025! Don't miss this opportunity to learn how to break Mixed Boolean Arithmetic expressions :)

1 year ago 2 2 0 0
Advertisement

Excited to announce that together with Tim Blazytko, our talk has been accepted to REcon 2025! Don't miss this opportunity to learn how to break Mixed Boolean Arithmetic expressions :)

1 year ago 2 2 0 0
Post image

At @reconmtl.bsky.social, @nicolo.dev and I discuss the current state of MBA (de)obfuscation and their applications. We’ll also introduce a new #BinaryNinja plugin for simplifying MBAs in the decompiler.

Details: cfp.recon.cx/recon-2025/f...

I'll also give a training: recon.cx/2025/trainin...

1 year ago 7 4 0 1
The Role of the Control Flow Graph in Static Analysis The flow control graph is an important building block in static program analysis for applying a variety of analyses that consider the flow of a program. The “flow”, described informally, represents the evolution of the program during execution time, that is, at which the CPU jumps in order to continue program execution. The graph (also called CFG for brevity) allows the first high-level elements of software to be derived in a general way from a low- or medium-level representation (we cite as an example assembly code or intermediate code). High-level elements include high-level loops (while or for loops) and execution branches (switch, if, else) that can be critical in identifying how execution evolves over time.

Control Flow Graph is a critical element for any binary analysis framework, but its role has been underestimated sometimes (I'm looking at you, Ghidra!).

nicolo.dev/en/blog/role...

1 year ago 2 2 0 0
Disassembling a binary: linear sweep and recursive traversal Building your own set of analysis tools is a great exercise for those who already have some basics and allows you to later move on to implement more targeted analyses in reverse engineering. Even just...

Disassembly algorithms are often a trade-off. My new blog post analyzes linear sweep and recursive traversal, exploring their strengths and weaknesses in a self-built disassemblers.

nicolo.dev/en/blog/disa...

1 year ago 3 1 0 0