Skip to content

Instantly share code, notes, and snippets.

View nkaretnikov's full-sized avatar

Nikita Karetnikov nkaretnikov

View GitHub Profile
@nkaretnikov
nkaretnikov / left_command_to_return_or_enter.json
Created February 20, 2022 09:20
karabiner-elements complex rule: left_command to return_or_enter
# put in ~/.config/karabiner/karabiner.json under complex_modifications.rules and restart karabiner-elements
{
"description": "Change left_command to return_or_enter if pressed alone (keep as modifier with other keys)",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "left_command",
"modifiers": {
@nkaretnikov
nkaretnikov / NOTES.md
Last active August 23, 2021 03:25
vim ccls
@nkaretnikov
nkaretnikov / .tmux.conf
Created May 5, 2020 10:27
My tmux config from a macOS machine
# Change the prefix to C-t.
unbind C-b
set -g prefix C-t
# Default shell.
set-option -g default-shell /bin/zsh
# set -g default-shell $SHELL
# Make clipboard copy/paste work.
# set -g default-command "reattach-to-user-namespace -l ${SHELL}"
diff --git a/readkmem/main.c b/readkmem/main.c
index bd0f398..f8aa47b 100644
--- a/readkmem/main.c
+++ b/readkmem/main.c
@@ -324,7 +324,7 @@ readkmem(void *buffer, mach_vm_address_t target_addr, size_t size)
kern_return_t kr = mach_vm_read_overwrite(g_kmem_source.kernel_port, target_addr, size, (mach_vm_address_t)buffer, &outsize);
if (kr != KERN_SUCCESS)
{
- ERROR_MSG("mach_vm_read_overwrite failed!");
+ ERROR_MSG("mach_vm_read_overwrite failed! kr: %d", kr);
@nkaretnikov
nkaretnikov / ida_highlight.py
Last active February 3, 2020 15:47
ida_highlight
from idaapi import *
from idc import *
TRACE_FILE = AskFile(0, "*.txt", "Select trace file")
if not TRACE_FILE:
Warning("Failed to select trace file")
else:
HIGHLIGHT = AskLong(0, "Choose action: 0 = clear, 1 = highlight")
@nkaretnikov
nkaretnikov / README.md
Created September 27, 2019 15:08
lldb trace

Start debugserver:

tty0 # debugserver localhost:8000 main

Start tracing:

tty1 $ lldb
tty1 (lldb) command script import trace.py
@nkaretnikov
nkaretnikov / README.md
Last active September 21, 2019 17:06
lldb trace

Start debugserver.

tty0$ sudo debugserver localhost:8000 main

Run the script in lldb. Note that the second pc line is incorrect (pc: 0xffffffffffffffff).

tty1$ lldb --version
lldb version 10.0.0 (https://github.com/llvm/llvm-project.git revision a7e9059967c4bff83ae6c3b595828bbbc8aaf82e)
  clang revision a7e9059967c4bff83ae6c3b595828bbbc8aaf82e
@nkaretnikov
nkaretnikov / main.py
Created September 29, 2018 08:16
min-heap
#!/usr/bin/env python
# min-heap
# Construct a heap from an array respecting the shape property.
def build_heap(A):
n = len(A)
# Implicit cast to int.
for i in reversed(range(n / 2)):
heapify(A, n, i)
@nkaretnikov
nkaretnikov / Main.hs
Last active April 15, 2018 02:14
in-place insertion sort
{-# LANGUAGE BangPatterns, CPP, MagicHash, UnboxedTuples #-}
module Main where
import Control.Monad (forM_)
import GHC.Enum
import GHC.Types
import GHC.Prim
import GHC.Word
@nkaretnikov
nkaretnikov / aeson.hs
Created April 8, 2018 16:18
aeson weirdness
customOptions :: Options
customOptions = defaultOptions
{ fieldLabelModifier = tail
, constructorTagModifier = map toLower
, unwrapUnaryRecords = True
}
data Auth = Auth
{ _username :: String
, _password :: String