Skip to content

Instantly share code, notes, and snippets.

View Tosainu's full-sized avatar
🌸
ヾ( ╹◡╹ 🌸 )ノ"

Kenta Sato Tosainu

🌸
ヾ( ╹◡╹ 🌸 )ノ"
View GitHub Profile
# syntax=docker/dockerfile:experimental
FROM fedora:31 as builder
ARG METASHELL_REV=16a3d5cd2352f28a6e505ad71b69e59ffb765775
RUN \
dnf install -y git gcc gcc-c++ cmake readline-devel rpm-build python python2 ninja-build && \
git clone --depth=10 https://github.com/metashell/metashell.git /usr/src/metashell && \
cd /usr/src/metashell && \
git checkout $METASHELL_REV && \
memfd: memfd.o binary.o
binary.o: sc
$(LD) -r -b binary -o $@ $^
sc: sc.S
$(CC) -no-pie -nostdlib -s $< -o $@
.PHONY: clean
clean:
@Tosainu
Tosainu / bfc.rs
Last active August 30, 2019 12:17
Brainf**k compiler (bf -> LLVM IR) and interpreter.
use std::collections::VecDeque;
use std::io::Read;
struct Emitter {
variable_idx: u32,
label_idx: u32,
loop_stack: VecDeque<u32>,
}
impl Emitter {
fn binary_sqrt(n: f64, tol: f64) -> f64 {
let mut s = 1.0f64;
let mut e = n;
while (s.powi(2) - n).abs() > tol {
let m = (s + e) / 2.0;
if m.powi(2) > n {
e = m;
} else {
s = m;
}
@Tosainu
Tosainu / a.rs
Last active May 2, 2020 14:51
Rust の競プロ用テンプレート
#![allow(unused_imports)]
use std::cmp::{max, min, Reverse};
use std::collections::{BTreeMap, BTreeSet, BinaryHeap, HashMap, HashSet, VecDeque};
use itertools::Itertools;
use nyan::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let stdin = std::io::stdin();
@Tosainu
Tosainu / tree.cc
Created May 22, 2019 02:21
std::bitset を使った隣接行列の表現、木の DFS と BFS
#include <algorithm>
#include <array>
#include <bitset>
#include <cstdint>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <memory>
#include <queue>
use std::f32;
use num_complex::Complex;
// http://linas.org/art-gallery/escape/smooth.html
fn smooth_iter(i: u32, z: Complex<f32>) -> f32 {
i as f32 - z.norm().ln().ln() / 2.0f32.ln()
}
// https://github.com/Nuke928/mandelbrot-opengl/blob/039fe9213c01992584f7b391da49bdeeb8d259e2/shader.glsl#L10-L16
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd
[Action]
Description = Updating systemd-boot
When = PostTransaction
Exec = /usr/bin/sh -c '/usr/bin/bootctl update && for f in $(/usr/bin/bootctl -p)/EFI/{BOOT/BOOTX64.EFI,systemd/systemd-bootx64.efi}; do /usr/bin/sbsign --key /root/secure-boot/db.key --cert /root/secure-boot/db.crt --output "$f" "$f"; done'
EXTRA_CFLAGS = -Wall -g
obj-m = hello.o
{-# LANGUAGE OverloadedStrings #-}
-- Google CTF 2018 Quals: sftp
import Control.Monad
import Control.Monad.IO.Class (liftIO)
import Data.Bits
import qualified Data.ByteString.Char8 as BS
import Data.List
import Data.Maybe