<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://mvsrgc.github.io/</id><title>/home/mvsrgc</title><subtitle>Mvsrgc's personal blog.</subtitle> <updated>2023-12-16T14:25:32+00:00</updated> <author> <name>mvsrgc</name> <uri>https://mvsrgc.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://mvsrgc.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://mvsrgc.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator> <rights> © 2023 mvsrgc </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Analyzing 32-bit assembly of a simple C program</title><link href="https://mvsrgc.github.io/posts/Analyze-32bit-Assembly-Of-C-Program/" rel="alternate" type="text/html" title="Analyzing 32-bit assembly of a simple C program" /><published>2023-10-12T00:00:00+00:00</published> <updated>2023-10-23T20:42:07+00:00</updated> <id>https://mvsrgc.github.io/posts/Analyze-32bit-Assembly-Of-C-Program/</id> <content src="https://mvsrgc.github.io/posts/Analyze-32bit-Assembly-Of-C-Program/" /> <author> <name>mvsrgc</name> </author> <category term="Programming" /> <summary> We’ll be analyzing a simple C program that demonstrates a few important concepts for reverse-engineering/exploiting 32 bit binaries. #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; void func(int x) { int a = 0; int b = x; } int main(void) { func(10); } Using Godbolt compiler explorer with x86-64 gcc 13.2 and the -m32 flag, we generate 32-bit x86 code. func: push ... </summary> </entry> <entry><title>Write a Shell Tokenizer in C (Part 1)</title><link href="https://mvsrgc.github.io/posts/Write-a-Shell-Tokenizer-in-C/" rel="alternate" type="text/html" title="Write a Shell Tokenizer in C (Part 1)" /><published>2023-08-17T00:00:00+00:00</published> <updated>2023-10-13T00:26:57+00:00</updated> <id>https://mvsrgc.github.io/posts/Write-a-Shell-Tokenizer-in-C/</id> <content src="https://mvsrgc.github.io/posts/Write-a-Shell-Tokenizer-in-C/" /> <author> <name>mvsrgc</name> </author> <category term="Programming" /> <summary> Write a Shell Tokenizer in C (Part 1: Data Structures) Note: this post explains how I built a tokenizer for a shell in C. My needs were simple, and I don’t claim to be an expert on language design, grammar or shells. However, this code has served me well. It is adapted from the Crafting Interpreters book, where the original code was written in Java. What is tokenization? A tokenizer takes in... </summary> </entry> <entry><title>Better vertical navigation in Vim</title><link href="https://mvsrgc.github.io/posts/Useful-Vim-Trick/" rel="alternate" type="text/html" title="Better vertical navigation in Vim" /><published>2023-06-14T00:00:00+00:00</published> <updated>2023-06-14T00:00:00+00:00</updated> <id>https://mvsrgc.github.io/posts/Useful-Vim-Trick/</id> <content src="https://mvsrgc.github.io/posts/Useful-Vim-Trick/" /> <author> <name>mvsrgc</name> </author> <category term="Tools" /> <category term="Vim" /> <summary> Better vertical navigation in Vim If you’re anything like me, you often find yourself navigating code with Vim. Now one of the motions you’ll learn for vertical navigation is &amp;lt;C-d&amp;gt; to move down by half a page and &amp;lt;C-u&amp;gt; to move up by half a page. The problem with these motions, out of the box, is that if you’re at the top of the page and you &amp;lt;C-d&amp;gt; then the visible portion of ... </summary> </entry> </feed>
