Skip to content

Instantly share code, notes, and snippets.

View RKX1209's full-sized avatar

Ren Kimura RKX1209

View GitHub Profile
$ uname -a
Linux rkx-PC 3.19.0-28-generic #30-Ubuntu SMP Mon Aug 31 15:52:51 UTC 2015 x86_6
4 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
for dir in lib tools runtime; do \
(make -C $dir all ) || exit 1; \
done
make[1]: Entering directory '/home/rkx/klee/lib'
if ([ ! -f Basic/Makefile ] || \
command test Basic/Makefile -ot \
/home/rkx/klee/lib/Basic/Makefile ); then \
/usr/lib/llvm-3.4/build/autoconf/mkinstalldirs Basic; \
/bin/cp /home/rkx/klee/lib/Basic/Makefile Basic/Makefile; \
fi; \
@RKX1209
RKX1209 / JokeLinux.patch
Created December 6, 2015 08:24
When apply this patch to linux kernel 3.13, you can choose config option 'NO_SIGSEGV', that disable SIGSEGV. In other words, when SEGV happen, new elf section corresponding segv address will allocated.
--- arch/x86/Kconfig
+++ arch/x86/Kconfig
@@ -263,6 +263,24 @@ config ARCH_SUPPORTS_UPROBES
source "init/Kconfig"
source "kernel/Kconfig.freezer"
+menu "Joke setup"
+
+config NO_SIGSEGV
+ bool "SIGSEGV must not happen"
@RKX1209
RKX1209 / preprosessor_errlr
Created February 4, 2016 04:45
Code expansion by GCC preprocessor. "error: expected unqualified-id before ‘namespace’ inline namespace _V2" has occured line:207
namespace std
{
using ::__gnu_cxx::lldiv_t;
using ::__gnu_cxx::_Exit;
using ::__gnu_cxx::llabs;
using ::__gnu_cxx::div;
using ::__gnu_cxx::lldiv;
@RKX1209
RKX1209 / DnlangAST.lisp
Created March 26, 2016 17:11
Dnlang: Parse syntax and translate to AST
function script_enemy_main() {
let imgBoss = "script\img\ExRumia.png";
let frame = 0;
let angleBase = 90;
return;
}
function Initialize() {
SetX(GetCenterX);
SetY(GetClipMinY + 120);
SetLife(2000);
let GetX = 0;
let GetY = 0;
let frame = 0;
let angleBase = 90;
let YELLOW01 = 1;
let WHITE01 = 10;
function script_enemy_main() {
let imgBoss = "script\img\ExRumia.png";
let frame = 0;
let res = frame * 3 + angleBase / 2;
@RKX1209
RKX1209 / leak.patch
Created June 19, 2017 12:34
CVE-2016-0728-patch
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 2346c95..4aa6474 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -278,8 +278,8 @@ __setup("nosmep", setup_disable_smep);
static __always_inline void setup_smep(struct cpuinfo_x86 *c)
{
- if (cpu_has(c, X86_FEATURE_SMEP))
- cr4_set_bits(X86_CR4_SMEP);
@RKX1209
RKX1209 / r2-internal.md
Created November 3, 2017 14:51
radare2 source code note

radare2のなかみ(radare2 internal)

Timeless Debuging

r2でもTimeless Debugingしたい。(GSoC2017) mid-termまでにrrやqiraのログを読んでTDできるように。finalでデバッガのプラグインとしてレコーダも開発。

疑問

  • dsb(debugger step back)を作れとの事だが、これは1ステップバックコマンド。で、ステップ"オーバー"するべきなの? 関数呼び出した後、後ろに戻ったら関数内のretに戻るべき?
  • qiraとかrrのtracing sessionはどうやって読み込む? r2実行時コマンドオプションで渡す? 読み込むタイミングは?
  • dsbの実装案、RDebugがその時のデバッギの状態っぽい。これを前の状態に戻す。dsoの場合r_debug_step_overからptrace(SINGLE_STEP)でデバッギの状態を更新 じゃあdsbやろうと思うと、PC含めレジスタの書き換えができるのでptraceで制御を1命令戻すとかは可能。なので必要なのは、デバッグログ。このログを読んでいってptrace で状態を前に戻していけば良さそう。
@RKX1209
RKX1209 / dd-internal.md
Created November 5, 2017 06:17
dd command source code internal

ddコマンドソースコード・リーディング

(dd.c)

|c| int main (int argc, char **argv) { int i; int exit_status; off_t offset;

@RKX1209
RKX1209 / bitvisor-internal.md
Created November 5, 2017 06:19
bitvisor source code internal

BitVisorのなかみ(BitVisor internal) 1.ビルド 各ディレクトリごとにoutput.oを生成して、トップディレクトリのoutput.oにリンク。 このoutput.oからbitvisor.elfを生成。 makeするとbuild-allルールで$(CONFIG),defconfigターゲットのルール実行。 これによりmake -f Makefile.config update-configが実行。update-configは.configを読み込んで.configに書き込む(?) .configはmake configすると、./config.shからwhiptailを使ってコンフィグ画面が起動。これで.configに書き込み。 その後make -f Makefile.buildでmake build-targetされる。 Makefile.buildでは$(DIR)$(target)(i.e. dir/$(outo))がビルドされる。これはdefoutoのエイリアス。

  1. ブート