タグ

binaryに関するtanakaBoxのブックマーク (42)

  • macOS で始める X68000 開発環境構築 - Qiita

    はじめに X68000 のクロス開発環境 elf2x68k では、Linux (WSL) や MinGW、macOS などの環境で以下のような X68000 のクロス開発を行うことができます。 C/C++ プログラムのコンパイル X-BASIC プログラムの C への変換とコンパイル X68000 で実行するプログラムの GDB を用いたリモートデバッグ 今回、初めて Mac を導入して X68000 のクロス開発環境を macOS 上で構築してみたので、その手順をまとめてみました。 動作は M3 MacBook Air の macOS Sonoma (14.5)上で確認しています。 事前の準備 ターミナルへのフルディスクアクセス設定 macOS のターミナルは Finder の アプリケーション → ユーティリティー から開けます。zsh が動いて UNIX 系の CUI 環境が最初から

    macOS で始める X68000 開発環境構築 - Qiita
  • https://twitter.com/shutingrz/status/1544711702998315008

    https://twitter.com/shutingrz/status/1544711702998315008
  • 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

    こんにちは。労働者です。とあるプログラムで学生さんの課題を添削していたら面白い話に出会いました。 僕は今、主に学部生向けのインターン研修的なプログラムでメンターなるものをやっています。メンターとしての仕事は、学生さんの課題へフィードバックを返し、Office Hourというセッションを毎週設けて質問受けやCSに関するトークを行うといった内容になっています。今回話題に取り上げるのはその中の課題の1つ、「行列積のプログラムを書いて時間を計測せよ」という何気ない話で、続く課題たちのいわば前座のようなものです。こういったところに沼は隠されているものですね。 担当している学生さんたちが細かい実験を行ってくれて以下のような疑問が提示されました。 「行列積の計算が N = 1024のときだけ N = 1023, 1025のときに比べて3倍遅いのはなぜ?」 配列のサイズが2のべき乗になるのは避けるべきとい

    2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
  • ImHex:午前3時にがんばる人のためのバイナリエディタ - setodaNote

    ImHex という Hex エディタを Ubuntu 20.04 にインストールしたときのメモ書きです。 ImHex ImHex を Ubuntu 20.04 にインストールする ImHex の画面設定 動かしてみた感想 参考文献 ImHex 公式 cmake 周り 参考にしたトラブルシューティング 付録 concepts が見つけられないというエラーについて 「CMake Error at cmake/build_helpers.cmake:55」について 更新履歴 ImHex ImHex は2020年の12月に公開された比較的新しい、午前3時にがんばる人のための Hex エディタです。 *1 GitHub - WerWolv/ImHex: A Hex Editor for Reverse Engineers, Programmers and people that value thei

    ImHex:午前3時にがんばる人のためのバイナリエディタ - setodaNote
  • ARM入門/arm introduction

    2020/08/08 ARM入門勉強会の発表資料です。 https://connpass.com/event/180812/

    ARM入門/arm introduction
  • 浮動小数点数の足し算と掛け算は可換か - Qiita

    読むのが面倒な人向けの結論:可換です。 「可換です」以外の答えを知りたい人はこの記事を最後まで読んでください。 結合法則と交換法則 実数の足し算や掛け算については結合法則 $x+(y+z)=(x+y)+z$ が成り立ちます。これに対し、浮動小数点数の足し算・掛け算が結合的でないことはとても有名な話です。 例えば、倍精度で (0x1p-200 + 1) + (-1) を計算すると、結合法則が成り立てば答えは 0x1p-200 となるはずですが、実際には 0 が返ってきます。 浮動小数点演算が結合的でないことは有名な話なので、ここではこれ以上詳しくは取りあげません。 一方で、交換法則(可換性)はどうでしょうか?「浮動小数点演算はこういう法則を満たさない!クソ!」みたいな話題で槍玉に上がるのはほとんどの場合結合法則で、交換法則に言及するものはあまり見かけない気がします。 交換法則が成り立つとどう

    浮動小数点数の足し算と掛け算は可換か - Qiita
  • 浮動小数点数の二段階丸め誤差 - hydrakecat’s blog

    さいきん『浮動小数点数小話』という同人誌を読んでFMA (Fused Multiply-Add)の二段階丸め誤差(double rounding error)について色々と知る機会があったのでまとめておく。ついでにFMAに関するOpenJDKのバグっぽい挙動を見つけたのでそれも併せて記しておく。 FMA (Fused Multiply-Add)とは FMAは以下のような演算のことを呼ぶ。 この演算自体は行列の乗算やベクトルの内積の計算でよく現れるものであるが、通常の浮動小数点数の乗算と加算を別々に行うと誤差が出るので一度の演算で正確な値を算出したいときに用いる。たとえばC言語(C99)では fma、fmaf、fmalという3つの関数が導入されているらしい。 FMAの実装における二段階丸め誤差 FMAはターゲットとなるCPUのアーキテクチャがFMA命令をサポートしていればその命令を直接呼び出

    浮動小数点数の二段階丸め誤差 - hydrakecat’s blog
  • 実践的低レイヤプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

  • 「Hello World!」の中身を探る意義と環境構築、main(C言語)のアセンブラコードの読み方

    書籍の中から有用な技術情報をピックアップして紹介するシリーズ。今回は、秀和システム発行の書籍『ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ(2015年9月11日発行)』からの抜粋です。 ご注意:稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 そんなハロー・ワールドですが、しかしその実、謎は多いのではないでしょうか。 printf()の先では、何が行われているのか? main()の前には、いったい何があるのか? stdio.hとは何で、どこにあるものなのか? 入門書では、もちろんこれらの疑問点は後回しにされています。入門書なので、これは当然のことでしょう。しかしそれらの疑問が後回しにされたまま、謎が謎のまま残ってしまってはいないでしょうか。 こうしたことは筆

    「Hello World!」の中身を探る意義と環境構築、main(C言語)のアセンブラコードの読み方
  • アセンブラへの道 coding(42) - Qiita

    事例(case study) アセンブラで覗くコンピュータの質 https://qiita.com/shm_ut/items/d27e6b80a5561a74d20f 前書き(preface Cコンパイラで生成したコードを、アセンブラで書き直したことがある。 コンパイラの最適化がまだ進んでいないころ、 Microsoft Cでコンパイルすると、NOPが結構入っていた。 単にNOPを外すだけでなく、マクロで簡潔にしてみた。 通信エミュレータで、NOPがなくなるとタイミングがずれてうまく動かないことが分かった。 ああ、Cコンパイラの作り方を覚えようと思った。 Cコンパイラは電総研(産総研)言語システム研究室の研究生で滞在した頃、Small Cコンパイラを写経し、Pascalで書かれたコンパイラをC言語に移植し、OBJという抽象データ型の言語のシンタックスチェッカをC言語で作成した。 C言語を

    アセンブラへの道 coding(42) - Qiita
  • Intel(R) 64 and IA-32 Architectures Software Developer's Manuals

    Overview These manuals describe the architecture and programming environment of the Intel® 64 and IA-32 architectures. Electronic versions of these documents allow you to quickly get the information you need and print only the pages you want. The Intel® 64 and IA-32 architectures software developer's manuals are now available for download via one combined volume, a four-volume set, or a ten-volume

    Intel(R) 64 and IA-32 Architectures Software Developer's Manuals
    tanakaBox
    tanakaBox 2018/07/10
    インテルのマニュアル。
  • begin.re

    This domain may be for sale!

    begin.re
  • OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来

    今回は、Webサーバの実装に依存することなく、OSレイヤでWebサーバソフトウェアが起動時に実行するであろうシステムコールを監視して、そのタイミングでプロセスをイメージ化する方法(PoC)について紹介します。 その前に、まずは前提の一致ということで、僕は以前から、Webサーバプロセスの性質について、プロアクティブ性とリアクティブ性という分類について述べてきました。 プロアクティブ性とリアクティブ性について簡単にまとめると、以下のようになります。 Webサーバ機能のプロアクティブ性とリアクティブ性 突発的なアクセス集中のような変化に耐えうるシステムを構築するためには,負荷の状態に基いて適切なインスタンスの数を決定し,必要以上にコンピュータリソースを使用しないように設計することも重要である. 単一のサーバに高集積にホストが収容可能であり,ホスト単位でのリソース管理を適切に行いながら,セキュリテ

    OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来
  • ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita

    はじめに はじめまして。 NTTデータ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 C や C++ を使用しているとしばしばビット演算を行う場面が出て来ます。 計算機リソースが限られている状況では、ビットを用いることでデータ量を少なく済ませたり、計算コストを小さく抑えたりすることができるメリットがあります。 記事では、ビット演算を用いて実現できる処理について、簡単なものから高度なものまで集大成します。極力わかりやすく頑張って執筆しました。特に前半 4 つはビットの説明の中でもかなりわかりやすい方だと思います。後半の 7 つのテーマは比較的高度なアルゴリズムの話題ですので、フラグ管理やマスクビットについて詳しく学びたい方は前半 4 つを中心に読んでいただいて、後半 6 つは必要に応じて読んでいただければと思います。反対にビットの知識はあってビットを用いたアルゴリズ

    ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita
  • 就職面接でプログラムの解読を求められた! | POSTD

    長文ですが、よかったら読んでください。 就職面接でプログラムの解読を求められました。そして、就職が決まりました。 皆さん、こんにちは。新しいブログを開設したので、私は今とても張り切っています。週に何度か記事を投稿するつもりです。 タイトルを見れば大体の話の内容は分かると思いますが、これから書くのは、トルコのアンカラで受けた就職面接の話です。 私が応募した職は「ソフトウェアセキュリティエンジニア」でした。面接中、面接官たちは非常に専門性が低い質問をしてきましたが、分かることもあれば分からないこともありました。 その後、その企業からメールが届き、保護および暗号化されたバイナリファイルが添付されていました(「解読してみろ」ということでしょう)。 帰宅後にファイルをダウンロードすると、ファイルを開くために聞かれたのはパスワードだけでした。面接官が私に課した課題は、そのパスワードを探すことでした。

    就職面接でプログラムの解読を求められた! | POSTD
    tanakaBox
    tanakaBox 2014/11/17
    楽しそう。
  • C言語のアセンブリ言語コード化〜直観編 - Qiita

    unsigned int fact(unsigned int x) { unsigned int y; if(x == 0) { y = 1; } else { y = x * fact(x - 1); } return y; } void main(void) { unsigned int p; p = fact(3); ... } なお,unsigned int は符号なしの整数という意味です。 3. オブジェクトコード (Z80風) このソースコードをZ80風のアセンブリ言語コード(生成対象のプログラムという意味で オブジェクトコード と呼びます)にしてみました。ただし,実際のZ80には存在しない命令を含んでいます。これらの命令はZ80のインストラクション・セットに沿って命名されています。 ちょっと手間がかかりますが,まずは実際に main からトレースしてみてください。 各レジスタ

    C言語のアセンブリ言語コード化〜直観編 - Qiita
  • 熱血! アセンブラ入門 - 秀和システム新社 あなたの学びをサポート!

    コンピュータとプログラミングを愛するすべての人に捧げるアセンブラ入門。700ページ以上にわたり、40種類のアセンブラを読み説きながら、アセンブラが現役であり続ける理由を考察します。アセンブラを読みはじめるのに、CPUの仕様書や、英語力なんて必要ないのです。研究者がこだわる「わかる喜び」、エンジニアがこだわる「動く喜び」を追い求める「熱意」こそが大切です。書を片手にオンリーワン・エンジニアを目指しましょう。 【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4180.html 第1部 基礎編:まずはアセンブラに慣れよう 01 まずは基操作を覚えて,アセンブラに慣れよう! 01.01 アセンブラを見てみよう 01.01.01 3つの関数だけを見てみる 01.01.02 まずは,目的を意識して読んでみよう 01.01.03 ア

    熱血! アセンブラ入門 - 秀和システム新社 あなたの学びをサポート!
    tanakaBox
    tanakaBox 2014/10/20
    欲しい。
  • Ruby プロセスを追いかけるツール(プロファイラとか)10選 - sonots:blog

    Ruby プロセスを追いかけるツール(プロファイラとか)10選 - sonots:blog
  • ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記

    バイナリ列を見て x86 のコードかな〜とニヨニヨできる人に、x86 のコードであること、だけじゃなく実際のコード列も読めるようになってほしい!そんな願いから、今回は hex dump のバイト列を見つめてハンド逆アセンブルできるようになるための、効率良い覚え方を紹介します。 今回は、32-bit x86 について解説するよ。 まとめて覚えておきたい 8 つの命令、add, sub, adc, sbb, and, or, xor, cmp (00h〜3Dh) これらの命令は近い所に配置されていて、しかも命令のルールがほとんど同じです。 つまり、ほとんど同じように覚えることができるのです。opcode map 上では次の領域が相当します。 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 ■ ■ ■ ■ ■ ■ ←add ■ ■ ■ ■ ■ ■ ←or 1 ■ ■ ■ ■

    ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記
    tanakaBox
    tanakaBox 2014/07/24
    ハンド (逆) アセンブルを補助するための PDF
  • Valgrind Home

    Information About News Tool Suite Supported Platforms The Developers Source Code Current Releases Release Archive Variants / Patches Code Repository Valkyrie / GUIs Documentation Table of Contents Quick Start FAQ User Manual Download Manual Research Papers Books Contact Mailing Lists and IRC Bug Reports Feature Requests Contact Summary Commercial Support How to Help Contributing Project Suggestion