Skip to content

Instantly share code, notes, and snippets.

ppoffice / Unicode_Garbled_Text_Decoder.js
Created April 25, 2016 14:56
Unicode Garbled Text Decoder
View Unicode_Garbled_Text_Decoder.js
x = '\xE7\xBB\xBF\xE8\x89\xB2\xE5\x81\xA5\xE5\xBA\xB7\xE5\xB0\x8F\xE6\xB8\x85\xE6\x96\xB0';
x.split('').map(i => (j = i.charCodeAt(0).toString(2), i.charCodeAt(0) > 127 ? j : new Array((4 - (j.length % 4)) % 4).fill('0').join('') + j)).map((i, j, k) => (l = i.match(/^0|^1{2,4}0/), l ? m = new Array(l[0] === '0' ? 1 : l[0].length - 1).fill(0) : m = [],, r) => r === 0 ? i.slice(l[0].length, i.length) : k[j + r].slice(2, k[j + r].length)))).filter(i => i.length).map(i => String.fromCharCode(parseInt(i.join(''), 2))).join('');
ppoffice /
Last active March 14, 2023 23:44
Minimal Linux Build Script
# Modified from ivandavidov/minimal-linux-script
# This script includes a dynamic linked busybox, openssl, python and
# network support
set -ex
View gist:2706b5e4448e8a3638c974e64c88c2ad
# Get Pre-reqs
apt-get install libattr1-dev git unzip make gcc automake pkg-config
# Get Android NDK
cd /root
mkdir -p build && cd build
wget -O /tmp/
unzip /tmp/ -d /root/build
# Set paths
ppoffice /
Last active September 11, 2023 00:55
LXC for Android 9.0.0 r18 Goldfish

Steps to build Android kernel and system for LXC:

  1. Download Android SDK, NDK, system and kernel source code;
  2. Download modified lxc and libcap source code (ppoffiec/lxc-android, ppoffice/libcap-android)
  3. Build Android system from source first so that we can link to its shared library when we build lxc (or maybe we don't have to);
  4. Modify Android kernel config and make sure lxc-checkconfig does not report any missing features. Then build kernel;
  5. Modify Android system/core/rootdir/init.rc according to init.rc.diff. Make sure you mount all the cgroup subsystems needed (cpu, cpuacct, cpuset, memory, pids, devices, freezer, blkio) under /sys/fs/cgruop, otherwise lxc won't find them;
  6. Rebuilt the Android system image so that the modified init.rc is in the image;
  7. Fire up the emulator with custom kernel (emulator -kernel kernel-file-path) and use adb shell and dmesg to check if everything is doing ok.
ppoffice /
Last active October 2, 2021 16:28
How to setup a Mirai testbed


  • CNC Server: (cnc.local:23)
  • Report Server: (cnc.local:48101)
  • Loader Server:
  • Bot Binary Host:*

Hosts Setup


ppoffice /
Last active December 19, 2023 18:13
Textbook/RAW RSA & RSA with OAEP+SHA1+MGF1 Python Implementation
from typing import Tuple
import pyasn1.codec.der.encoder
import pyasn1.type.univ
import base64
import rsa
def private_key_pem(n: int, e: int, d: int, p: int, q: int, dP: int, dQ: int, qInv: int) -> str:
'''Create a private key PEM file
ppoffice /
Last active March 14, 2023 23:44
LG Nexus 5 Ubuntu Xfce4 Desktop with X11 fbdev and evdev
# recompile kernel first with patch:
git clone \
-b marshmallow-mr1-release \
git clone \
-b android-msm-hammerhead-3.4-marshmallow-mr1 \
git clone ~/mkbootimg
cd ~/msm
ppoffice / cem_v1_to_v2.cpp
Created April 25, 2020 19:34
Convert Empire Earth CEM v1 model to v2 model
View cem_v1_to_v2.cpp
// Copyright 2020 ppoffice
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this softwareand associated documentation files(the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and /or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions :
// The above copyright noticeand this permission notice shall be included in
ppoffice /
Last active March 1, 2024 23:49
Install Visual Studio Code (actually code-server) on Android
  1. Install Termux, an Android terminal emulator that provides a Linux execution environment and various tools.

  2. Update system packages in Termux:

    $ pkg update -y
ppoffice /
Last active September 2, 2022 19:20
Backup Linux using tar
cd /
tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \