- JDKがinstall済みであること
- java コマンドに環境変数Pathが通っていること
# -*- coding: utf-8 -*- | |
require_relative 'twitterbot' | |
Twitter.configure {|config| | |
config.consumer_key = 'consumer key' | |
config.consumer_secret = 'consumer secret' | |
config.oauth_token = 'oauth token' | |
config.oauth_token_secret = 'oauth token secret' | |
} |
COMPILER = g++ | |
CFLAGS = -g -MMD -MP -Wall -Wextra -Winit-self -Wno-missing-field-initializers | |
ifeq "$(shell getconf LONG_BIT)" "64" | |
LDFLAGS = | |
else | |
LDFLAGS = | |
endif | |
LIBS = | |
INCLUDE = -I./include | |
TARGET = ./bin/$(shell basename `readlink -f .`) |
# count = 計算回数 | |
# precision = 精度 | |
function y = wallis_formula(count,precision) | |
output_precision(precision) | |
i = 1 | |
a = 1 | |
while(i<=count) | |
num = 4*(i^2) | |
a = a * num/(num-1) | |
i++ |
cmake_minimum_required(VERSION 2.8) | |
project( imageproc ) | |
find_package(OpenMP REQUIRED) | |
if(OPENMP_FOUND) | |
message(STATUS "Enabling OpenMP support") | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") | |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") | |
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") | |
else() |
IGGG Advent Calender 2015のために書いた記事です。
常設CTFで遊んでたらPwnable系の問題を解いてるうちにいろいろと勉強になったのでまとめます。
PwnableとはCTFのジャンルの1つで、プログラムの脆弱性をつき、本来アクセスできないメモリ領域にアクセスして操作し、フラグを取得する感じの問題です。
別名としてExploit
があります。
公式リファレンス: pwntools
最新版を降らせる
pip install "git+https://github.com/Gallopsled/pwntools#egg=pwntools"
MIPSのABIは変だという話をこないだのシステムプログラミング会でしたら、ややザワッとしたので、なにがおかしいのかというのをちょっとまとめてみました。まとめてみて思いましたが、やっぱりMIPSのELFファイルはちょっと変です。
これが僕は一番ひどいと思ったものです。
ファイルにマルチバイトの数値を保存するときはエンディアンというものが問題になります。たとえば0xBEEFという2バイトの数を保存するときは、1バイト目にBE、2バイト目にEFを書くか、逆順で書くかは、ただの決まり事でどっちでもいいわけですが、書く側と読む側で認識があっていないと困ります。世の中的にはリトルエンディアン(下位バイトから書く)のが主流ですがビッグエンディアンなシステムもあります。
それがですね、MIPSのELFヘッダのr_infoという64ビットのフィールドはリトルエンディアンでもビッグエンディアンでもない謎なエンコーディングになっています。具体的には下位32ビットが最初にリトルエンディアンで書かれていて、ビッグエンディアンでエンコードされた上位32ビットがそれに続くという構成になっています。つまりリトルエンディアンだとABCD EFGH、ビッグエンディアンだとHGFE DCBAとなるところが、MIPSのmixed endianだとEFGH DCBAというふうにファイルに書かれていることになります。
- CARTA HOLDINGS(旧VOYAGE GROUP)
- 技術広報が新卒研修<Open AIハッカソン>をスパイしてみた - (2023/04/11)
- @t_wadaに学ぶテスト駆動開発【CARTA 23新卒研修】 - (2023/04/19)
- 【新卒研修】監修者@t_wadaと読む!プログラマが知るべき97のこと読書会 - (2024/04/09)
- Classi
- 当たり前にリリースしていく ~ 新卒研修編 - (2021/05/20)
- リモートワークのための質問力向上研修を実施しました - (2021/12/07)
- CyberZ
- 良いコードとは何か - エンジニア新卒研修 スライド公開 - (2021/04/27)