並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 33 件 / 33件

新着順 人気順

バイナリの魔術師の検索結果1 - 33 件 / 33件

  • 1,000行で作るオペレーティングシステム

    「Writing an OS in 1,000 Lines」 というオンラインブックを書きました。ゼロから1,000行でOSを作るという内容です。 『自作OSで学ぶマイクロカーネルの設計と実装』 とは違い、最初の一歩の部分を重点的に解説しています。シンプルなモノリシックカーネル設計で、実装の解説だけでなくカーネルプログラミング特有の難しい部分、特に「カーネルをどうデバッグすれば良いか」をおさえた、初学者向きの内容になっています。 3日ほどあれば済むボリュームです。夏休みの自由研究がてら、ぜひチャレンジしてみてください。

      1,000行で作るオペレーティングシステム
    • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

      Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld

        コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
      • x86-64機械語入門

        この記事はx86-64の機械語を書けるようになるためのガイドとなることを目指します。読者はアセンブリー言語について既にある程度知っていることを想定します。 情報源 x86-64の機械語のオフィシャルなガイドはIntelのSoftware Developer ManualまたはAMDのAMD64 Architecture Programmer's Manualです。 Intel SDM: Intel® 64 and IA-32 Architectures Software Developer Manuals AMD64 Architecture Programmer's Manual, Volumes 1-5 このほか、Cから呼び出される関数を定義したり、Cの関数を呼び出すためには、呼び出し規約の知識も必要です。使用される呼び出し規約はOSに依存し、Unix系では主にSystem V ABI

          x86-64機械語入門
        • フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記

          モチベーション なぜRustを選んだか? 私はQEMUは「アーキテクチャエミュレーション界のLLVM」だと思っている QEMUが高速な理由:TCG Binary Translation ゲスト命令(RISC-V) → TCG → ホスト命令(x86)の処理をRustで作ろう RISC-Vの命令をフェッチしてデコードする RISC-Vの命令をTCGに変換する TCGをx86に変換する 実装結果 Binary Translation実行を高速化するための様々なテクニック BasicBlock分まで複数命令をまとめて変換 TCG Block Chainingの実装 評価結果 TB Lookup and Jumpの実装 評価結果 まだ完成していないところ 一部の最適化はまだ未実装となっている ゲストアーキテクチャがx86のみとなっている。TCGによる複数プラットフォーム対応として、まずは環境のそろ

            フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
          • 無から始める自作CPU

            クレイジーピエロ 著 無から始める自作CPU CPUは作れる!!!!!!!!ご存知でしたか!!!?????? CPU、それは我々が暮らす情報社会の基盤となる魔法の石です。 世に存在する全てのソフトウェア、例えばゲーム、AI、Webサーバ、OS、これらは全てCPUが無ければ動きませんし、今や車や飛行機、家電にも全てCPUが入っている時代です。 そんな誰もがCPUに依存している時代にも関わらず、CPUについて理解を持っている人間は余りにも僅か、というのが現状です。 そんな今こそCPUを作りましょう。 CPUを作り、完全に理解する事で、CPUによって成り立つ技術を学ぶ上での、揺るぎない自信と確証を身につける事が出来るでしょう。 本記事ではCPUという究極のブラックボックスに光を当て、半導体やプログラミングの知識が無の状態から、CPUを作る事を目標としています。 必要な物 本記事の内容の99%はW

              無から始める自作CPU
            • Raspberry Piで学ぶコンピュータアーキテクチャ

              本書は、未来のプログラマ、コンピュータ設計者のために書かれた、Raspberry Piを題材にコンピュータの「仕組み」、コンピュータサイエンスの基本を学ぶ書籍です。Raspberry Pi開発者たちが、プロセッサ、メモリ、ストレージ、ネットワーク、オペレーティングシステム、プログラミング、3Dグラフィックス、オーディオ、そして入出力制御などについて、それらの歴史的な背景なども合わせて詳細に解説を行います。また、解説内容の一部は、実際にRaspberry Piで動かしながら学ぶことも可能です。 はじめに ケンブリッジ ここからが本題 成長曲線の伸び悩むところ 将来に向けて 監訳者まえがき 1章 驚くべきコンピュータの姿 おいしくて果汁あふれるラズベリーの成長 SoC わくわくするクレジットカードサイズのコンピュータ Raspberry Piに何ができるか? Raspberry Piボードの紹

                Raspberry Piで学ぶコンピュータアーキテクチャ
              • malloc.c を読む (malloc / free)

                このシリーズではこれらの関数が内部でどのように処理されるのかを調べていきます。 malloc.c を読む (malloc / free) malloc.c を読む (bins) malloc.c を読む (arena) 今回は malloc() free() の全体像を紹介します。 注意としてここでの目的は全体を俯瞰して、詳細を詰めずとも各 bins の役割を理解し、攻撃手法を理解できるようにすることです。それに合わないマルチスレッドや最適化などにおける緻密なトリックやコーナーケースなどは暗黙的に実装されていると仮定します。その詳細についてはソースコードや他の資料を参考にしていただきたいです。 ここで扱う glibc のバージョンは v2.38 です。また glibc のソースコードはブラウザ上で読むことができます。 https://elixir.bootlin.com/glibc/lat

                  malloc.c を読む (malloc / free)
                • どうして昔の人は8進数でしゃべるのか 「TK80」「Z80」の16進世代が調べたオクタルの歴史

                  Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。takeoka氏は、8進数について調査、発表をしました。 よく使う命令は暗記をしていた16進世代 takeoka氏(以下、takeoka):takeokaです。低レイヤー、長い人生、そして……まぁ、格調が低い話をします。 私は16進世代です。若い人にはわからないかもしれませんが、昔はTK-80しかなく、assembleしてくれる機械なんて持っていなかったので、みんなアセンブラ・ニーモニックでバーっとプログラムを書いて、それが終わったらおもむろに16進コードへの変換を手でやっていました。だからよく使う命令は、基本的に暗記していました。 あれですね。HLレジスタへのimmediateのloadは「21」とか、Aレジスタへのimmediate loa

                    どうして昔の人は8進数でしゃべるのか 「TK80」「Z80」の16進世代が調べたオクタルの歴史
                  • GitHub - WerWolv/ImHex: 🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.

                    Featureful hex view Byte patching Patch management Infinite Undo/Redo "Copy bytes as..." Bytes Hex string C, C++, C#, Rust, Python, Java & JavaScript array ASCII-Art hex view HTML self-contained div Simple string and hex search Goto from start, end and current cursor position Colorful highlighting Configurable foreground highlighting rules Background highlighting using patterns, find results and b

                      GitHub - WerWolv/ImHex: 🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
                    • Rustで作るフルスクラッチQEMU型エミュレータ

                      Introduction of Technologies and People Supporting RISC-V Ecosystem

                        Rustで作るフルスクラッチQEMU型エミュレータ
                      • プロセス情報をデタラメにする攻撃「Process Herpaderping」の内部構造を紐解く | 技術者ブログ | 三井物産セキュアディレクション株式会社

                        早速ですが、まずは以下の図1をご覧ください。 真ん中にメッセージボックスが表示されていますが、このメッセージボックスを表示するプロセスがどこから起動しているのか、つまり、実体EXEファイルの場所がこの図からわかるでしょうか? 図 1 プロセス情報がデタラメになっている様子 図1では、Process ExplorerやProcess Hackerで見る限り、プロセス名は「こんばんは!★」(拡張子なし)となっています。各ツールで表示されたプロセスのプロパティ情報を見ると、Process Explorerでは実体の場所がExplorer.exeであるかのように見えてしまっています。 一方でProcess Hackerでは、メッセージボックスのプロセスがMicrosoftの有効なデジタル署名を持っているかのように見えており、実体の場所が「こんばんは!★」を指しているように見えます。 では該当の「こ

                          プロセス情報をデタラメにする攻撃「Process Herpaderping」の内部構造を紐解く | 技術者ブログ | 三井物産セキュアディレクション株式会社
                        • 【大原雄介の半導体業界こぼれ話】 新命令FREDの導入で、消滅するx86のRing 1/2特権

                            【大原雄介の半導体業界こぼれ話】 新命令FREDの導入で、消滅するx86のRing 1/2特権
                          • Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機

                            カテゴリー DX (2) 一般 (58) 研究会 (6) 働き方 (4) 技術 (351) Edge AI (2) Edge Computing (12) Erlang (1) FIWARE (2) Fog Computing (9) Infiniband (31) Internet of Things (32) Key Value Store (17) Linux (3) Linux KVM (10) Machine Learning (4) RealTime Web (14) SRE (2) Webサービス (42) インフラ (7) コンテナ (3) ストレージ (92) データセンター (7) データベース (47) データ流通 (6) テレプレゼンス (2) ネットワーク (214) 仮想化 (110) 災害コミュニケーション (26) 空間情報 (30) 量子コンピューティング

                              Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機
                            • 20 Best Kernel Books of All Time

                              The 20 best kernel books recommended by Golden Richard and Peter Baer Galvin.

                                20 Best Kernel Books of All Time
                              • Writing a C compiler in 500 lines of Python

                                A few months ago, I set myself the challenge of writing a C compiler in 500 lines of Python1, after writing my SDF donut post. How hard could it be? The answer was, pretty hard, even when dropping quite a few features. But it was also pretty interesting, and the result is surprisingly functional and not too hard to understand! There's too much code for me to comprehensively cover in a single blog

                                • お探しのページが見つかりませんでした|三井物産セキュアディレクション株式会社

                                  たいへん申し訳ございませんが、お客様のアクセスしたページ(URL)を見つけることができませんでした。 お客様がお探しのページ(URL)は、サイトリニューアルに伴い変更したページの可能性がございます。 恐れ入りますが、下記サイトマップより該当する内容をお探しください。

                                    お探しのページが見つかりませんでした|三井物産セキュアディレクション株式会社
                                  • “PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る

                                    RISCの歴史、Apple Siliconの歩みを語ってきた大原雄介さんのコンピュータ歴史連載、テーマはズバリ「PC」だ。

                                      “PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る
                                    • eBPF - Introduction, Tutorials & Community Resources

                                      Dynamically program the kernel for efficient networking, observability, tracing, and security Programs are verified to safely executeHook anywhere in the kernel to modify functionalityJIT compiler for near native execution speedAdd OS capabilities at runtime

                                        eBPF - Introduction, Tutorials & Community Resources
                                      • Learning ARM Exploit Development

                                        # Learning ARM Exploit Development # 1. はじめに このリポジトリは、ARM 32bit アーキテクチャのExploit について学習することができるリポジトリです。各章のドキュメントを読みつつARM Exploit 開発について学ぶことができます。本コンテンツの対象読者層は、x86, amd64 のExploit 開発をしたことがある人です。そのため、説明が少し省略されている部分もあるとは思いますがご了承ください。 ARM の解析環境をお持ちでない方は、本ページの末尾にあるARM環境構築を参考に環境を構築してみてください。また、学習用ファイル を使っていくのでARM環境にダウンロードしてください。 Exploit コードには、プログラミング言語Ruby を利用しています。そのためホストOSにRuby の環境が必要となります。また、Exploit 用ラ

                                        • MalDoc in PDF - 検知回避を狙って悪性なWordファイルをPDFファイルへ埋め込む手法 - - JPCERT/CC Eyes

                                          JPCERT/CCは、7月に発生した攻撃に、検知回避を狙って悪性なWordファイルをPDFファイルへ埋め込む新しいテクニック(以降本記事ではMalDoc in PDFとする)が使用されたことを確認しました。今回は、使用されたMalDoc in PDFの詳細とその対策について解説します。 MalDoc in PDFの概要 MalDoc in PDFで作成されたファイルはPDFのマジックナンバーやファイル構造を持つにもかかわらず、Wordで開くことが可能なファイルとなります。このファイルをWordで開くことで、ファイルにMacroが設定されていた場合、VBSが動作し、悪性の挙動を行います。 なお、JPCERT/CCが確認した攻撃では、ファイルの拡張子は.docとして使用されていたため、Windowsの設定で.docの拡張子にWordが関連付けされている場合、MalDoc in PDFで作成され

                                            MalDoc in PDF - 検知回避を狙って悪性なWordファイルをPDFファイルへ埋め込む手法 - - JPCERT/CC Eyes
                                          • 脆弱性診断用に非ルート化端末でも動作するCUIのメモリ改ざんツール「apk-medit」を作った話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

                                            こんにちは、セキュリティエンジニアの小竹 泰一(aka tkmru)です。 アカツキでは、Webアプリケーション、ゲームアプリに対する脆弱性診断や社内ネットワークに対するペネトレーションテスト、ツール開発/検証などを担当しています。 メモリ改ざんによるチートとは UI上に表示されている値を端末のメモリ上から検索し、見つけた値を改ざんすることでチートを行うことができる場合があります。 これはゲームのチート方法の中で最も簡単な方法で、脆弱性診断の際にも実際にメモリ上のデータを改ざんをすることでチートできるかどうか確認しています。 対策としては、XOR等を使ってメモリ上ではエンコードされた状態で値を保持し、UI上に表示されている値を検索されても見つからないようにする方法があります。 作ったツール apk-meditという脆弱性診断のためのAndroidアプリ向けメモリ改ざんツールを作成しました。

                                              脆弱性診断用に非ルート化端末でも動作するCUIのメモリ改ざんツール「apk-medit」を作った話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
                                            • mold: modern linker

                                              mold: modern linker Rui Ueyama

                                                mold: modern linker
                                              • An Introduction to Interpreters and JIT Compilation

                                                Last week, I gave two lectures at the Programming Language Implementation Summer School (PLISS). PLISS was very well organized and the students and other presenters made for a very enjoyable week of new ideas, learning, and discussing. For my own lectures, I decided to take an approach that focused more on the high-level ideas and can introduce a wider audience to how we build interpreters and a r

                                                • Go 言語製実行ファイル解析の紹介 - FFRIエンジニアブログ

                                                  はじめに セキュリティエンジニアの桑原です。 プログラミング言語には様々なものがあります。 その中でも近年 Go 言語がシンプルなコードであり並行処理を簡単に書けるという特徴から人気が出ています。 しかしながら、マルウェアの作成者も Go 言語に目をつけはじめました。 その結果、WellMess や TellYouThePass といった Go 言語製のマルウェアが出現しています。 こうした Go 言語製の実行ファイルは C 言語等で作成された実行ファイルと異なる点が多く、それを知らずに解析を始めると戸惑うことがあります。 そこで本ブログでは、Go 言語で解説用に作成した無害な実行ファイルの解析を通して、その特徴を紹介します。 以下は今回使用したツールと環境です。 Windows 10 x64 20H2 Ghidra 10.1.1 x64dbg Mar 16 2021, 01:13:24

                                                    Go 言語製実行ファイル解析の紹介 - FFRIエンジニアブログ
                                                  • GitHub - rui314/chibicc: A small C compiler

                                                    chibicc: A Small C Compiler (The old master has moved to historical/old branch. This is a new one uploaded in September 2020.) chibicc is yet another small C compiler that implements most C11 features. Even though it still probably falls into the "toy compilers" category just like other small compilers do, chibicc can compile several real-world programs, including Git, SQLite, libpng and chibicc i

                                                      GitHub - rui314/chibicc: A small C compiler
                                                    • How to use Trend Micro's Rootkit Remover to Install a Rootkit

                                                      The opinions expressed in this publication are those of the authors. They do not reflect the opinions or views of my employer. All research was conducted independently. For a recent project, I had to do research into methods rootkits are detected and the most effective measures to catch them when I asked the question, what are some existing solutions to rootkits and how do they function? My search

                                                        How to use Trend Micro's Rootkit Remover to Install a Rootkit
                                                      • カスタマーサポートがクラッシュの原因を突き止めた話 - Qiita

                                                        この記事はクラスター Advent Calendar 2020の12日目の記事です。 昨日はclngnさんの「clusterのアバターサムネイルを変えた話」でした。影のこだわりはさすがですね。 はじめに みなさんこんにちは、スワンマンです。 普段はクラスターでイベントスタッフをやったり、イベントのMCをやったり、アバターの調整をしたり、スタジオの整備をしたり、Twitterの中の人をやったり…等々色んなことに携わっていますが、その中のメイン業務のひとつとしてカスタマーサポートもやっています。 今回はそのカスタマーサポートに寄せられた不具合の原因を自分で突き止めた時の話です。 原因不明のクラッシュが頻発…しない カスタマーサポートには日々不具合の報告が寄せられます。その中には自分だけで解決できるものもあればそうでないものもあり、そうでないものは開発チームへと送られます。 しかし開発チームのリ

                                                          カスタマーサポートがクラッシュの原因を突き止めた話 - Qiita
                                                        • Decompiler Explorer

                                                          Upload File Your file must be less than 2MB in size. Uploaded binaries are retained.

                                                          • The Art of Malware – Danus Minimus – Reverse Engineer and Malware Analyst

                                                            Bringing the Dead back to life I would like to dedicate this post(or perhaps series of posts) to Mark Ludwig, the author of The Giant Black Book of Computer Viruses, who passed away in 2011. You’ve sparked my initial interest in viruses back in 2013 when I was only 15, and although back then I could barely understand your book I would like to make some closure in modern day era. You saw viruses as

                                                            • Amazon.co.jp: 作って学ぶコンピュータアーキテクチャ —— LLVMとRISC-Vによる低レイヤプログラミングの基礎: 木村優之: 本

                                                                Amazon.co.jp: 作って学ぶコンピュータアーキテクチャ —— LLVMとRISC-Vによる低レイヤプログラミングの基礎: 木村優之: 本
                                                              • Amazon.co.jp: 68000とMacintosh Toolbox詳解: 柴田文彦: 本

                                                                  Amazon.co.jp: 68000とMacintosh Toolbox詳解: 柴田文彦: 本
                                                                • Blinding EDR On Windows

                                                                  Acknowledgements My understanding of EDRs would not be possible without the help of many great security researchers. Below are some write-ups and talks that really helped me gain the understanding needed and hit the ground running on the research that will be presented here. If you are interested to go deeper, be sure to check out the following research (in no particular order): Jackson T: A Guide

                                                                  • Malware development part 1 - basics

                                                                    Introduction This is the first post of a series which regards development of malicious software. In this series we will explore and try to implement multiple techniques used by malicious applications to execute code, hide from defenses and persist. Let’s create a C++ application that will run malicious shellcode while trying to not be caught by AV software. Why C++ and not C# or PowerShell script?

                                                                    1