Skip to content

Instantly share code, notes, and snippets.

View mahmoudimus's full-sized avatar
💭
@_@

Mahmoud Rusty Abdelkader mahmoudimus

💭
@_@
View GitHub Profile
@mahmoudimus
mahmoudimus / _.md
Last active April 9, 2025 16:18 — forked from Jinmo/_.md
C/C++ header to IDA

Usage

In IDAPython,

execfile('<path>/cxxparser.py')
parse_file('<path>/a.cpp',[r'-I<path>\LuaJIT-2.0.5\src', '-D__NT__', '-D__X64__', '-D__EA64__'])
parse_file('<path>/malloc.c',['-target=x86_64-linux-gnu'])
@mahmoudimus
mahmoudimus / idapro_python_apply_dif_file_patch_to_idb.py
Created February 18, 2025 21:51
Program for using IDA's .dif files to patch binaries
# from https://reverseengineering.stackexchange.com/a/11835/13408
# ported to python3 and IDA 8.0+ by Mahmoud Abdelkader
import idaapi
import ida_bytes
import ida_kernwin
def apply_dif_file(dif_file_name):
print("Applying " + dif_file_name + " to database.")
@junron
junron / demo.py
Last active February 7, 2025 05:14
C Types for Python
import real_ctypes
arr = (char[16])(b'I love Python+C!')
print("A big integer:", (uint128)(arr))
arr2 = (long[:])(arr)
print("Chunked:", arr2)
arr2 += 1
print("Back to bytes, but offset:", bytes((char[:])(arr2)))
@mahmoudimus
mahmoudimus / stop-cheatengine-laugh.bat
Last active August 9, 2024 19:31
Cheat Engine's Creepy Laughter on Windows Mahmoud Abdelkader (aka mahmoudimus)
@echo off
REM Place this file into the cheat engine directory and run it.
REM
REM If you've downloaded Cheat Engine and installed it from a non-standard installer,
REM you might periodically hear a creepy man's laugh lasting three seconds or so. It
REM seems like it might be a virus, malware or something untoward but it is not. It
REM turns out, for non-Patreon users, cheat engine software has a two-stage installer.
REM
REM The first stage is basically adware. The second stage downloads the actual
REM installer, which can malfunction if not launched by the ad-filled installer.
@mahmoudimus
mahmoudimus / leaderkeyideas.md
Last active July 10, 2024 17:18
Emacs Key Leader Keys

Obviously the normal ones are: Ctrl-x, Ctrl-u

Alt can be a good leader prefix. Alt-x is emacs-extended-command. Alt-m is used by spacemacs.

Visual Studio has Ctrl-k, Ctrl-e, but IMO, they are not good. Those are very "hot" keys that are used all the time

Tmux has Ctrl-b, which is almost always rebound to Ctrl-a for memory compatibility with Screen's Ctrl-a. It's also not good IMO, but Tmux is used very often that it is reasonable to include Ctrl-a as a leader key.

One I've started playing with is Ctrl-Insert - it has almost no conflicts. There are also Ctrl-Numlock and Ctrl-Scrolllock

@mahmoudimus
mahmoudimus / llvm17_clang17.sh
Last active April 1, 2024 14:12
dockerfile to build tensorflow from source
function install() {
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 17
locate clang-17
clang-17 --version
}
function uninstall() {
sudo rm /etc/apt/sources.list.d/archive_uri-http_apt_llvm_org_*.list
@mahmoudimus
mahmoudimus / .zshrc
Created March 24, 2024 15:43 — forked from matfax/.zshrc
Sudo authentication with Windows 1Password CLI on Ubuntu WSL
# ....
alias sudo="sudo -A"
@mahmoudimus
mahmoudimus / build-emacs.sh
Last active May 10, 2024 08:52 — forked from 3tty0n/build-emacs.sh
Build emacs on Ubuntu 22.04
#!/bin/sh
# Explore:
# https://github.com/howardabrams/hamacs/blob/main/README-Linux.org
# https://batsov.com/articles/2021/12/19/building-emacs-from-source-with-pgtk/
# https://practical.li/blog/build-emacs-from-source-on-debian-linux/
# https://github.com/konstare/emacs-gcc-pgtk/blob/master/Dockerfile
# First determine your gcc version with gcc --version,
# then modify libgccjit-12-dev below to the major version number you have!
@neggles
neggles / cuda-install-wsl2.sh
Last active June 23, 2024 07:59
WSL2 ubuntu 22.04 CUDA setup
#!/usr/bin/env bash
set -euo pipefail
# please don't run this script as an actual script. it's not remotely error checked. paste command blocks in one by one
# and make sure the output looks vaguely sane.
# remove this once you've read below!
echo "You didn't actually read the instructions, did you?"; exit 1
# first up, `sudo nano /etc/wsl.conf` and add this:
[boot]