What does
func("b4by_r3vers1ng_ch4ll")
return?
func:
push rbp
mov rbp, rsp
sub rsp, 16
mov QWORD PTR [-16+rbp], rdi
mov rax, 0x0cafebabe
mov QWORD PTR [-8+rbp], rax
<# | |
DynWin32-ReverseShell.ps1 is a reverse shell based on dynamically looked up Win32 API calls. | |
The script uses reflection to obtain access to GetModuleHandle, GetProcAddress and CreateProcess. | |
Afterwards it uses GetModuleHandle and GetProcAddress to resolve the required WSA functions | |
from ws2_32.dll. | |
This script should be used for educational purposes only (and maybe while playing CTF :D). | |
It was only tested on Windows 10 (x64) and is probably not stable or portable. It's only | |
purpose is to demonstrate the usage of reflective lookups of Win32 API calls. See it as |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE RankNTypes #-} | |
{-# LANGUAGE StandaloneKindSignatures #-} | |
{-# LANGUAGE TypeApplications #-} | |
{-# LANGUAGE TypeFamilies #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
{-# LANGUAGE NoStarIsType #-} |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE RankNTypes #-} | |
{-# LANGUAGE StandaloneKindSignatures #-} | |
{-# LANGUAGE TypeApplications #-} | |
{-# LANGUAGE TypeFamilies #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE UndecidableInstances #-} |
// Processing code by Etienne JACOB | |
// motion blur template by beesandbombs | |
// result of this is more like tumblr version than twitter version (https://necessary-disorder.tumblr.com/image/190425356073) | |
int[][] result; | |
float t, c; | |
float ease(float p) { | |
return 3*p*p - 2*p*p*p; | |
} |
Libuv and libev, two I/O libraries with similar names, recently had the privilege to use both libraries to write something. Now let's talk about my own subjective expression of common and different points.
The topic of high-performance network programming has been discussed. Asynchronous, asynchronous, or asynchronous. Whether it is epoll or kqueue, it is always indispensable to the asynchronous topic.
Libuv is asynchronous, and libev is synchronous multiplexing IO multiplexing.
Libev is a simple encapsulation of system I/O reuse. Basically, it solves the problem of different APIs between epoll and kqueuq. Ensure that programs written using livev's API can run on most *nix platforms. However, the disadvantages of libev are also obvious. Because it basically just encapsulates the Event Library, it is inconvenient to use. For example, accept(3) requires manual setnonblocking after connection. EAGAIN, EWOULDBLOCK, and EINTER need to be detected when reading from a socket. This is a
theory Leftpad | |
imports Main | |
begin | |
definition leftPad :: "'a ⇒ nat ⇒ 'a list ⇒ 'a list" | |
where "leftPad padChar targetLength s ≡ replicate (targetLength - length s) padChar @ s" | |
definition isPadded :: "'a ⇒ 'a list ⇒ 'a list ⇒ bool" | |
where "isPadded padChar unpadded padded ≡ ∃ n. set (take n padded) ⊆ { padChar } ∧ drop n padded = unpadded" |
{-# LANGUAGE AllowAmbiguousTypes #-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE KindSignatures #-} | |
{-# LANGUAGE MultiParamTypeClasses #-} | |
{-# LANGUAGE ScopedTypeVariables #-} | |
{-# LANGUAGE TypeApplications #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE UndecidableInstances #-} |
{-# LANGUAGE DeriveFunctor #-} | |
{-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
{-# LANGUAGE LambdaCase #-} | |
{-# LANGUAGE OverloadedStrings #-} | |
{-# LANGUAGE RankNTypes #-} | |
module BL1 where | |
import Control.Monad (when) | |
import Data.Foldable (for_) |
#include <stdint.h> | |
/** | |
* Encode a code point using UTF-8 | |
* | |
* @author Ondřej Hruška <ondra@ondrovo.com> | |
* @license MIT | |
* | |
* @param out - output buffer (min 5 characters), will be 0-terminated | |
* @param utf - code point 0-0x10FFFF |