| date | title | descr |
|---|---|---|
Thu 13 Jul 2017 10:41:19 AM CEST |
Roll your own redux |
Simple state mgmt using rxjs for redux fans |
using rxjs
| jnes:src/ (9c8138f7b0✗) $ xxd -s0x1fafde147e00 -g1 -e -len 64 /proc/`pidof d8`/mem | |
| de147e00: 48 8d 1d f9 ff ff ff 48 3b d9 74 18 48 ba 00 00 H......H;.t.H... | |
| de147e10: 00 00 36 00 00 00 49 ba 40 22 c4 b5 31 7f 00 00 ..6...I.@"..1... | |
| de147e20: 41 ff d2 cc 48 8b 59 e0 f6 43 0f 01 0f 85 ae 31 A...H.Y..C.....1 | |
| de147e30: f4 ff 55 48 89 e5 56 57 48 83 ec 30 48 89 75 e0 ..UH..VWH..0H.u. |
| Instructions (size = 868) | |
| 0x1fafde147e00 0 cc int3l | |
| 0x1fafde147e01 1 8d1df9ffffff leal rbx,[rip+0xfffffff9] | |
| 0x1fafde147e07 7 483bd9 REX.W cmpq rbx,rcx | |
| 0x1fafde147e0a a 7418 jz 0x1fafde147e24 <+0x24> | |
| 0x1fafde147e0c c 48ba0000000036000000 REX.W movq rdx,0x3600000000 | |
| 0x1fafde147e16 16 cc int3l | |
| 0x1fafde147e17 17 ba4022c4b5 movl rdx,0xb5c42240 ;; off heap target | |
| 0x1fafde147e1c 1c 317f00 xorl [rdi+0x0],rdi | |
| 0x1fafde147e1f 1f 0041ff addb [rcx-0x1],al |
| (gdb) b *0x1fafde147e00 | |
| Breakpoint 2 at 0x1fafde147e00 | |
| (gdb) cont | |
| Continuing. | |
| Thread 1 "d8" hit Breakpoint 2, 0x00001fafde147e00 in LazyCompile:*myfunc test.js:144 () | |
| => 0x00001fafde147e00 <LazyCompile:*myfunc test.js:144+0>: 48 8d 1d f9 ff ff ff lea -0x7(%rip),%rbx # 0x1fafde147e00 <LazyCompile:*myfunc test.js:144> | |
| (gdb) i r rbx rcx | |
| rbx 0x5 5 | |
| rcx 0x1fafde147e00 34840205622784 |
| # make sure to not have conflicts.. | |
| sudo apt remove android-sdk{,-platform-tools,-build-tools} adb | |
| sudo apt autoremove | |
| mkdir ~/GREEN_LAB | |
| cd ~/GREEN_LAB | |
| # https://developer.android.com/studio/#command-tools | |
| wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip -O android-sdk-tools.zip |
| sudo apt-get update | |
| sudo apt-get install build-essential curl libz3-dev z3 libboost-dev libcapstone-dev libpython-dev cmake python-z3 | |
| curl -L http://software.intel.com/sites/landingpage/pintool/downloads/pin-2.14-71313-gcc.4.4.7-linux.tar.gz| tar xzf - | |
| cd pin-2.14-71313-gcc.4.4.7-linux/source/tools/ | |
| curl -L https://github.com/JonathanSalwan/Triton/archive/v0.4.tar.gz | tar xzf - | |
| cd Triton-0.4/ | |
| mkdir build | |
| cd build | |
| cmake -DPINTOOL=on -DKERNEL4=on .. | |
| make -j4 |
| #include <stdio.h> | |
| /* 1337 linked list, kernel style */ | |
| #define MEMBER_OFFSET(type, member) \ | |
| (unsigned long)(&(((type *)0)->member)) | |
| #define LIST_ENTRY(ptr, type, member) \ | |
| ((type *)(((char *)(ptr)) - MEMBER_OFFSET(type, member))) | |
| #define LIST_INIT(list) \ | |
| (list).next = &(list);\ |
| const URL = require('url') | |
| const Rx = require('rxjs/Rx') | |
| const WebSocketServer = require('ws').Server | |
| /** pipe stdin out on websocket */ | |
| function pipe (conn) { | |
| process.stdin.setEncoding('utf8') | |
| return Rx.Observable.create(obs => { | |
| process.stdin.on('data', obs.next.bind(obs)) |
| #!/bin/sh | |
| set -e | |
| IF=$1 | |
| if [ -z "$IF" ] ; then | |
| echo "Usage: $0 <interface>" | |
| exit 1 | |
| fi | |
| ifconfig $IF > /dev/null # stop execution if the interface doesn't exist |
| // Naturally this has to be done before creating List instances!! | |
| // monkey patching List constructor to add hooks support | |
| (function () { | |
| var grappling = require('grappling-hook'); | |
| var List = keystone.List; | |
| keystone.List = function (name, options) { | |
| List.apply(this, arguments); |