Aug 26, 2022Practical ARM64 (Subroutines)Calling subroutines in higher level programming languages is trivial, the developer has simply to reference the name of a subroutine, give some arguments (if any) and handle the result. …8 min read8 min read
Aug 16, 2022Practical ARM64 (selections and loops)So far we went trough the most important instructions of the AArch64 instruction set and it is time to move to something more practical. In these series of posts we are going to talk about structured programming in arm64. …Arm 645 min readArm 645 min read
Aug 4, 2022ARM 64 Assembly Series — Data Processing (Part 2)Previous posts: Basic definitions and registers, lab setup, offset and addressing modes, Load And Store, Branch, Data Processing Part 1 — In the first part of the data processing instruction set we talked about arithmetic, logical, move and shift operations. …5 min read5 min read
Aug 1, 2022ARM 64 Assembly Series — Data Processing (Part 1)Previous posts: Basic definitions and registers, lab setup, offset and addressing modes, Load And Store, Branch — So far we talked about load, store and branch instructions and it is time to discuss about a (long) set of instructions that can be used to process data. …Assembly6 min readAssembly6 min read
Jul 21, 2022ARM 64 Assembly Series — BranchPrevious posts: Basic definitions and registers, lab setup, offset and addressing modes, Load And Store — In the previous post we talked about the ldr and str instructions which can be used to transfer data bidirectionally between a memory address and a register (or pair of registers): In this post we are going to talk about branch instructions and how they can be used in order…Arm7 min readArm7 min read
Jul 14, 2022ARM 64 Assembly Series — Load and StorePrevious posts: Basic definitions and registers, lab setup, offset and addressing modes — As we discussed in the previous post: The AArch64 architecture supports a single instruction set called A64 which consists of fixed-length 32 bit instructions that can be used to: Load and store data, change the address of the next instruction to be executed, perform arithmetic or logical operations, perform a…Arm 647 min readArm 647 min read
Jul 8, 2022ARM 64 Assembly Series — Offset and Addressing modesLab Set up Before we start exploring the AArch64’s instruction set, let us first set up our lab and run the traditional “Hello world”, just to make things a bit more interesting. Here is a handy script which I found here to help you setup your raspberry pi testing machine: If everything…Aarch 646 min readAarch 646 min read
Jun 21, 2022ARM 64 Assembly Series— Basic definitions and registersMain Definitions ARM is an acronym for Advanced RISC Machines and if it is not followed by a noun, it refers to a family of processors (CPUs) that are designed based on the architecture developed by Arm Ltd., a British company based in Cambridge, England. RISC is another acronym which stands for…Arm 646 min readArm 646 min read
Published in InfoSec Write-ups·Jun 6, 2022The toddler’s introduction to Heap Exploitation, House of Lore(Part 4.5)Similarly to other heap exploitation attacks that we saw so far, the idea behind the House of Lore (HoL) is to trick malloc to return a pointer to a memory location which is controlled by the attacker. HoL (ab)uses the way that ptmalloc handles the small bin entries although the…5 min read5 min read
May 31, 2022Pending Intents: A Pentester’s viewFew days ago I came across an interesting case of vulnerability posted at the AndroidInfoSec’s facebook page. Since there are not many references on the specific subject I decided to take a short break from my heap exploitation series and cover this topic in a blog post. …Mobile Security6 min readMobile Security6 min read