セキュリティ系の勉強、その他開発メモとか雑談. GithubはUnity触っていた頃ものがメイン Twitterフォローもよろしくです

ファミコンエミュレータを写経してみるお話3【HelloWorld(sample1.nes)の実行】

やること 参考にするもの 読み始める前に 修正 ひとまず呼び出そうとしてみる カセットのデータ 描画担当 環境を整える デバッグに関して 次回 前回 ファミコンエミュレータを写経してみるお話2【PPU】 - 196Log やること 前回はPPUの機能を実装しましたが…

ファミコンエミュレータを写経してみるお話2【PPU】

NES

やること 参考にするもの 読み始める前に レジスタ PPU DMA 積み残し 追記 前回 thinline196.hatenablog.com やること 前回は初歩として、CPUの実装を行い、参考サイトを元に一通りの必要と思われる命令を網羅的に実装しました。まだファミコンをエミュレー…

ファミコンエミュレータを写経してみるお話1【CPU】

NES

はじめに モチベーション 参考にするもの 読み始める前に 始めにやること CPUから作り始めてみる 命令を1つずつ実装する 足りないもの レジスタの実装 busの仮実装と初めての命令の実装 LDA系の命令を一通り実装する 全ての命令を網羅する 割り込み系の追加…

Signed Int加算減算のオーバーフロー判定について

はじめに Rustでファミコンのエミュレータを写経していた時のお話です。CPUの実装で加算・減算の命令実装時に、オーバーフローの判定を挟むのですが何やっているのか分からず悩んだので、ここに自分なりの解釈を書いておきます。もっと良い考え方があれば教…

【Docker】docker-entrypoint-initdb.d内ファイルっていつ呼ばれるのよ

タイトル通り 初歩的な内容です。いつ呼ばれるというのは、"タイミング"の話ではなく、"初回起動時"とかそんな感じです。 docker-compose.yml 大体こんな感じの設定でビルドしてます。 #docker-compose.yml version: '3' services: ... db: image: mysql:8.0…

【ngrok.io】特定のIPアドレスとポートでリクエストを受け付ける

ctf

あらまし ContrailCTFにオンタイムで参加できず、writeupを見ながら復習していた時、ngrokなるサイトが紹介されていたのでメモがてら備忘録です。 NoWallForUs という問題のwriteupに使われていました。シナリオとしては競プロサイトで、Cなど任意言語でhell…

【復習回】Archiso Web Challenges 2019

ctf

この記事は 解けなかった問題や違う解法を自分用に残しておくものです。writeupは他の方のをぜひご覧ください。 参考先 aokakes.hatenablog.com Single Page HTML Viewer 2 テキストフィールドにurlを入力して/flagファイルの中身を見る問題です。flagという…

【Swift5】AXIsProcessTrustedWithOptions(_:) アクセシビリティのダイアログ(Window)が表示されない[MacOS]

環境 コード 原因 情報が乗ってないわけではないのですが、日本語のMacOSの解説が少ないので残しておきます。この記事での原因はaddGlobalMonitorForEventsです。 developer.apple.com 環境 xcode Version 11.2.1 (11B500) Apple Swift version 5.1.2 (swift…

【MySQL】VALUESの中に他テーブルの文字を挿入[SQLi]

ctf

想定 下の$paramsの部分が入力になっている。ここで保存した値が、一覧ページに表示される仕様になっている。 INSERT INTO table_name (column_name1, column_name2) VALUES (1, $params) ; スキーマ名をカラムに保存 $params = (select group_concat(schema…

【rails_vue_melt】Vuexを使う&管理

はじめに 階層構造 中身 呼び出す人 大元 countsモジュールの中身 使ってみる はじめに 前回はrails_vue_meltというgemを利用してRailsにvue.jsを導入しました。今回はVuexをいい感じに管理しようと思います。が、もっと良いわけたかがあると思うので、普段…

yarn.lock integrityが削除される

事象 こんな感じで、他人がコミットしたyarn.lockを使用してyarn installを行うと、integrity行が大量に消えdiffがものすごいことになる。 環境 $ yarn -v 1.16.0 結論 元々yarn1.10系から導入されたもののようで、過去に1.9系でinstallを行うとintegrityが…

Real-World Bug Hunting 読みました

内容 対象読者 その他 内容 HackerOneを中心に、過去のレポートをなぞりながら、どうやってサイトを探索してバグを見つけ出したかを丁寧に説明してくれます。各脆弱性の種類ごとに章が組まれていて、章内では軽く脆弱性の説明と3,4個のレポートとその流れを…

【rails_vue_melt】Vue.jsにRailsから上手いことレコードデータを渡す

やりたいこと 前勉強 RailsとVue.jsでデータを上手いこと受け渡す rails_vue_melt rails_vue_meltの導入 動作テスト Railsのレコードを扱う やりたいこと RailsのView側でVue.jsを連携させて、柔軟な処理をやりたい。元々これをやっていたプロダクトを事前に…

【Ghidra】wsock32.dllの関数名解決(Ordinal_N)

環境 ubuntu 18.04 Ghidra 9.1 やること GhidraのAuto Analysisでインポートしたファイルを分析させると、KERNEL32.DLLの関数名はしっかり紐づけてくれるのですが、他のものはうまくできず、Ordinal_(数字)となったりします。ので、これを上手く解決したい。…

【xINTCTF】bus again Writeup - AVTokyo2019

この問題は AVTokyo2019にて会場で同時開催されていた、OSINT系の問題が中心のctfの500点問題です。画像が二枚渡されるので、そこに載っているバス停の緯度経度を調べるというもの。 そもそも こちらのスライドを事前に知っておりました。 Open xINT CTF Bus…

【Rails】Administrateで独自の属性型を定義しReadonly等に対応する

目的 完成系 土台をadministrateより生成する NumberFieldクラス viewの部分 目的 administrateの管理画面での属性の表示を色々といじりたいときに、新しいクラスを作成して、対応する方法です。例えば、readonlyな表示をしたり、ラジオボタンに対応したりな…

復習回 maidakectf2019

ctf

この記事は 自分用です。。 参考 st98.github.io qiita.com qiita.com Kancolle Engine (SQLi) LIKE句にユーザ入力が入る問題でした。(問題ではsqlite3使用とのこと。) ワイルドカードとして、%が0文字以上の任意の文字列、_が任意の1文字を表すので、%をフ…

【Swagger3.0】1つのステータスコードに対して複数のレスポンスを定義 (oneOf)

状況 Swaggerで、とあるapiのレスポンスにおいて、「同じステータスコードを返すんだけれど、bodyの内容が違う場合がある」時、SwaggerのoneOfという書き方で対応できます。(swagger3.0以上だったはず) 例 openapi: 3.0.0 ... 省略 ... paths: /hello: get: …

【Rails5】Administrateのスタイルシート読込先を変更する

やること 管理画面生成のgemadministrateにてRailsのデフォルトのスタイルシートapplication.cssから、スタイルを読み込ませる方法。そんなに難しいことはしません。 方法 以下のコマンドで_styoesheet.html.erbを生成します。これでadministrateのデフォル…

【Rails】登録内容がユニークでないユーザへの条件別対応

例えば ユーザが電話番号で仮登録をし、認証のためのURLを生成して返す場合、同じ電話番号を使って再度仮登録の内容をPOSTしてくる場合がある。1時間以内に2回送ってくる人は恐らくイタズラに近い可能性があるのでエラーを返すが、それ以降に再度送ってき…

【Rails】コールバックで自分以外のレコードとユニーク判定を行う

解決 レアケースだと思いますが、バリデーションのコールバックでhoge_columnsという属性のユニーク判定をしたい場合です。特に難しいことはなく、下のようにやります。 User.where(hoge_columns:self.hoge_columns).where.not(id: self.id).empty? 本来なら…

OWASP Juice-Shop 初心者感想

Juice-Shop OWASPから提供されているやられサイト。githubから取ってきて自分で建てて、そこで試せます。答えを見ながらもようやく完走したので、初心者目線で感想を書いてみます。 github.com コンテンツ内容 今まで見つかったライブラリとかの脆弱性がみっ…

【Rails】Administrateでモデルを持たないページ(Rootページ)を作成

Administrate 今回使用したバージョン トップページ gemの特性 解消法 Administrate 管理画面を簡単に作れるgemで、カスタマイズが他のものよりも容易である点が特徴っぽいです。 github.com 今回使用したバージョン # Gemfile.lock administrate (0.11.0) a…

【復習回】InterKosenCTF 2019

参考サイト 【web】uploader(warmup) 【web】Temple of Time 【web】Image Extractor シンボリックリンク コマンドインジェクション 【web】Neko Loader 結果 お疲れ様です。今回はweb問だけに絞ってチャレンジしました、が、相変わらず、碌に回答できずに終…

【UNION SELECT】Juice ShopのSQLインジェクションの備忘録

Retrieve a list of all user credentials via SQL Injection 解くまえに 通常のリクエスト エラーを起こす union select 模範回答 www.owasp.org OWASPが提供してくれているやられサイト。 今までUNION SELECTのSQLインジェクションがよく分かっていなかっ…

【Rails5】find_by(nil)が先頭レコードを返す

find_by find_byメソッドは、検索するカラムとその条件を指定してそのレコードのうち最初の一件を取得します。例えばfind_by(id: 1)ならidが1のレコードを返します。 find_by(nil) -> nil ??? 使い方は正しくはありませんが、この使い方をするとnilが返って…

【terraform+capistrano+itamae】Railsのアプリケーションをawsにデプロイした時の備忘録③

目的 itamae itamae呼び出し方法 レシピ dependencies users ruby その他 MySQL capistrano側の変更 余談 前回はcapistranoでデプロイをする部分をやった。が、デプロイ先のaws内の準備は手動でやったので、その部分をitamae自動化したい。 thinline196.hate…

【terraform+capistrano+itamae】Railsのアプリケーションをawsにデプロイした時の備忘録②

Capistrano 参考サイト 使用Gem capistrano設定 config/deploy/production.rb config/deploy.rb lib/capistrano/tasks/unicorn.rb config/unicorn/production.rb 環境変数 awsのRDBを使用する プライベートリポジトリからdeployする デプロイ実行 その他対処…

【terraform+capistrano+itamae】Railsのアプリケーションをawsにデプロイした時の備忘録①

参考サイト terraform 設定(main.tf) 参考サイト 基本的にこちらを参考にしているため、こちらを見れば諸々解決可能です。本記事は備忘録なので見にくいかも。 tech.recruit-mp.co.jp kenzo0107.hatenablog.com terraform terraformとは インフラストラクチ…

【Rails】git-cz, rubocopなど初期導入での設定

新規のRailsのプロジェクト yarnの導入 npmのモジュールの導入 package.jsonに追記 rubocop.ymlの設定 .cz-config.js おまけ 新規のRailsのプロジェクト を久しぶりに立ち上げた際に、git-cz等の導入方法を忘れていたので備忘録として残しておきます。 yarn…