タグ

アセンブラに関するlike_futsalのブックマーク (31)

  • 過去の難案件 PS2のカーネル開発 - Qiita

    はじめに 時はPlayStation2も そろそろ終わり。 PS2互換機がゲームセンター等で使われていた時代の事です 私は当時 超新人だったんだけどね ただ私は 大学を3ヶ月で光速中退して すぐにフリーランスになった変な経歴持ちです そんな時 ある人物が 掲示板に メモリマネージャやDMA、3DCGについて質問をしていた ちょうどその時期 仕事が楽だったので 光速で回答しました。 メモリマネージャ作りたいっていうので、簡単な方法として、連結リストでAllocateしていくと簡単だよ DMAについては 方向のふらぐがこーであーするだけだよ 3DCGについては DirectXを知識は入れてたので なんとなく回答 すると やり取りから1週間で 仕事してもらえますか? PS2の自社タイトルを作ってます。コアエンジニアが不足しています とメールアドレス宛にメッセージがきたので 請ける事に これがすべ

    過去の難案件 PS2のカーネル開発 - Qiita
  • 米国家安全保障局、リバースエンジニアリングツール「GHIDRA」を公開へ

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 米国家安全保障局(NSA)は3月初旬にサンフランシスコで開催されるセキュリティカンファレンスRSA Conferenceで、リバースエンジニアリングツールを披露する。その後、オープンソースソフトウェアとして公開される予定だという。 公開されるのは「GHIDRA」という名前の逆アセンブラだ。逆アセンブラとは、実行ファイルからアセンブリ言語を生成して、人間による解析を手助けするソフトウェアのことである。 NSAは2000年代の初めにGHIDRAを開発し、数年前から、さまざまなマルウェアや疑わしいソフトウェアの内部の仕組みを調べるサイバーチームを擁するほかの米政府機関と同ソフトウェアを共有している。 GHIDRAの存在は国家機密というわけでは

    米国家安全保障局、リバースエンジニアリングツール「GHIDRA」を公開へ
  • 続・ドンキで売っている5000円くらいのアクションカムをバラしてみる|ja1tye

    概要記事「ドンキで売っている5000円くらいのアクションカムをバラしてみる」を公開した後に行った追加の調査の量が増えてきたので,当初元ページに追記していた分と合わせて新たな記事としました.最初に元ページに追記していた部分を,その後にさらに行った調査の結果を書いていきます. 画質チェックとUSB関連機能について (初出:「追記(2017/08/20 17:16)」)組み戻してフォーカスの調整をしてから,最高解像度(12M,4032×3024)設定で静止画を撮ってみました. アクションカムの広角レンズ特有の歪みがあります.画質も悪くはないですが,当にネイティブ解像度が12Mピクセルかはちょっと怪しそうだなあという感じがします.(あくまで主観的なコメントですが…) また,動画に関してはビデオ部分がMotion JPEG 29.9fps,オーディオ部分が11.025kHz a-law PCMでし

    続・ドンキで売っている5000円くらいのアクションカムをバラしてみる|ja1tye
  • アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita

    #include <stdio.h> #include <string.h> int main(){ FILE *fp; fp = fopen("/proc/self/maps", "re"); if (fp != NULL) { char buf[256]; while (fgets(buf, sizeof(buf), fp) != NULL) { if (strstr(buf, "[stack]") != NULL) { puts(buf); } } fclose(fp); } return 0; } [rarul@tina ~]$ gcc -c -o main.o main.c [rarul@tina ~]$ gcc -c -o asm.o asm.S [rarul@tina ~]$ gcc -o stack_exec main.o asm.o [rarul@tina ~]$ ./s

    アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
  • Linuxでx86アセンブラ(基本的なコードの構造編) - Qiita

    db はサイズが1バイトの変数を宣言します.dwは1ワード(2バイト)、ddは1ダブルワード(4バイト)のサイズの変数を宣言します. C・C++でいわれる配列を宣言するためには下のように書きます. hoge db 1,2,3,4,5 これにより、中身が[1,2,3,4,5]の配列が宣言されます. 定数の宣言もdataセクションで行うことができます.定数の宣言にはeq ニーモニックを使います.

    Linuxでx86アセンブラ(基本的なコードの構造編) - Qiita
  • 原書で学ぶ64bitアセンブラ入門(7) - わらばんし仄聞記

    原書で学ぶ64bitアセンブラ入門(6) - わらばんし仄聞記 上のリンクに続いて、11章、浮動小数点数についての続きです。 Conversion ある整数長から別の整数長や、ある浮動小数点数長から別の浮動小数点数長。はたまた整数長から浮動小数点数長やその逆といった、つまりはwordからquad-wordへの変換やdouble-wordからdoubleへの変換など、そういった変換についてです。 整数長から整数長への変換は今までに出てきたmov命令を使って成される為、ここでは浮動小数点数を絡めた内容について扱います。 Converting to a different length floating point ざっと挙げると以下のパターンがあります 1つのfloatからdoubleへの変換 2つのpackされたfloatからdoubleへの変換 1つのdoubleからfloatへの変換 2

    原書で学ぶ64bitアセンブラ入門(7) - わらばんし仄聞記
  • 原書で学ぶ64bitアセンブラ入門(5) - わらばんし仄聞記

    10章の配列について。 原書で学ぶ64bitアセンブラ入門(5)でやった内容になります。 chapter10 Arrays Array address computation 配列とは、つまりが、ある特定の型(byte, words, double-words, quad-wordsなどのいずれか)のメモリ領域の連なりです。つまり、各要素の占めるバイト数は同じであり、各要素のアドレスは等間隔となるので容易に計算できます。 たとえば、アドレスbaseから始まる1要素mバイトの配列aについて考えてみると、要素a[i]はbase+i*mに位置します。 以下のコードを使った場合、aは1要素がbyte長で100要素の配列先頭アドレス、bは1要素がdouble word長で100要素の配列先頭アドレスといった具合になります。 General pattern for memory refereces メ

    原書で学ぶ64bitアセンブラ入門(5) - わらばんし仄聞記
  • 原書で学ぶ64bitアセンブラ入門(3) - わらばんし仄聞記

    さて、間が空いてしまいましたが続きをば。 当なら前回に続いてchapter3について書くのが筋なんでしょうが、つい先日にやった勉強会での範囲に当たるところを先に書いてしまおうかと。 chapter8 Branching and looping ということで、一気に飛んで8章で、分岐とループについてです。 分岐といってもif文のような明確な構造があるわけでもなく、ほかの言語で言うところのGOTO文のようなものを駆使して実現する事になります。 unconditional jump 無条件ジャンプとの名の通り、この命令が実行されると条件無く対象のラベルの位置へとばされる命令です。 書式としては jmp labelという具合にjmpというニーモニックに飛び先のラベルを指定するだけです。 この節についてはこれだけで終わってしまうこともできますが、せっかくなのでもうちょっと掘り下げてみることに。 こ

    原書で学ぶ64bitアセンブラ入門(3) - わらばんし仄聞記
  • 原書で学ぶ64bitアセンブラ入門(2) - わらばんし仄聞記

    前回に引き続き、タイトルの勉強会でやった内容についてです。 勉強会毎の投稿ではなく、区切りと記事を書く労力の関係上、書の1章ごとに書いていこうと思います。 chapter2 Numbers 二章は数値についてです。 コンピュータでは全ての情報をビット列として扱いますが、そのなかでも数値をビット列でどう保存しているかについて見ていきます。 この辺りはまだ序の口なので、まだまだ64bit特有な事は出てきません。ですので大体わかってる人は飛ばしてしまってもいいんじゃないかなとは思います。正直自分でも記事を書いていて、今更な事柄なんでとばしちゃいたい気持ちが少し…。 Binary numbers(2進数) 日頃使ってる10進数の数値は各桁の重みが10のn乗(n=0,1,2...)で表されるのと同様、2進数では各桁の重みが2のn乗となります。(位取り記数法) 10進数の例 1024 = 10^3

    原書で学ぶ64bitアセンブラ入門(2) - わらばんし仄聞記
  • Assembly Language

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 原書で学ぶ64bitアセンブラ入門(1) - わらばんし仄聞記

    タイトルの通り、洋書の64bitアセンブラ入門書をよむ勉強会を開催しています。 参考書:Introduction to 64 Bit Intel Assembly Language Programming for Linux ターゲットとしては洋書の技術書はいつも物怖じしてたけど、読んでみよう!という人と、 アセンブラのは古いのばっかで最新(=64bit)のモノがないなーと思ってた人。 参加してもらってるのは後者が多い感じがしますがね。 そもそも自分が英語あまりできないし(TOEIC400点代)。 そんな自分ではありますが、興味ある人には当会に途中からでも参加していただけるよう、 今までやってた内容を要約して書いておこうと思った次第であります。 chapter1 introduction 第一章は導入部分です。 何故このご時世にアセンブリ言語を学ぶ価値があるのかなどについて。 まー この

    原書で学ぶ64bitアセンブラ入門(1) - わらばんし仄聞記
  • 原書で学ぶ64bitアセンブラ入門(6) - わらばんし仄聞記

    11章、浮動小数点数について。 原書で学ぶ64bitアセンブラ入門(5) - connpassでの内容です。 chapter11 Floating point instructions 浮動小数点数の演算は、8088世代のCPUでは8087というコプロセッサ(補助プロセッサ)を使っていました。486世代になるとコプロセッサを内包するようになり、現在のCPUでもそれらの為の命令は使えるようです。 ですが、現在では基的に、完全に分離された浮動小数点数用の機構があり、そちらを使います。その機構では16個の128bitレジスタ(Core iシリーズでは256bit)を使い、これらのレジスタはSSEレジスタ(Streaming SIMD Extensionsレジスタ。SIMD=Single Instruction - Multiple Data)と呼ばれます。 この章では主にこのレジスタを使用した

    原書で学ぶ64bitアセンブラ入門(6) - わらばんし仄聞記
  • アセンブリ言語入門

    この講座は Intel 社の 80x86 互換プロセッサを想定します 80x86 アセンブラまたはその互換アセンブラ以外では正常に動作しません この講座のサンプルプログラムを実行した結果について、一切の責任は持てません この講座のサンプルソースは、Windows 98 SE のMS-DOSプロンプトで動作確認しています DEBUGを使ったアセンブラは、ソース上の数値は16進数と解釈されますが 他のアセンブラで、16進数を表現するには数字の後に H をつける必要があります

  • セクションについて - suu-g's diary

    gccによってコンパイルされたアセンブリソースを眺めていると、そこかしこに .text だとか .ascii だとか書かれているのを見かける。これらは一体なんなのさ、ということについて調べた。ピリオドで始まるこれはディレクティブと言うもので、様々な意味を持っている。 まずは、そのディレクティブの一つの用法であるセクションについて説明する。 C言語のプログラムをgccにてコンパイルしたときの動きについて、まずは復習しよう。 はじめにソースコードに対してプリプロセッサが働いてコンパイルできる状態にし、続いてコンパイラによってアセンブリソースが吐かれる。そのアセンブリソースはasというアセンブラによってアセンブルされてオブジェクトファイルになる。最後に、それらのオブジェクトファイルがldというリンカによってリンクされ、実行形式のファイルになる。 これから確認されるように、アセンブラはアセンブリ言

    セクションについて - suu-g's diary
  • 原書で学ぶ64bitアセンブラ入門(4) - わらばんし仄聞記

    続いて9章。 これまたついこの前の原書で学ぶ64bitアセンブラ入門(4)でやった内容になります。 この章は関数呼び出しの挙動やスタックフレームなんかを扱います。 chapter9 Functions The stack まずはスタックについて。 ちょっとまだエントリには書いていない、以前やった3章ではスタックのアドレスは最高値が0x7fffffffffffになるとの記述があったんですが、この章でいきなりこの件をちゃぶ台返しして、「いやすまん。アレは嘘だ」と述べてくれます。 んじゃ実際どうなってるのよ?ということで、適当にターミナルを開いてシェルのプロセスの様子を見てみます。 $ cat /proc/$$/maps 00400000-004d4000 r-xp 00000000 fd:00 354 /bin/bash 006d3000-006dd000 rw-p 000d3000 fd:0

    原書で学ぶ64bitアセンブラ入門(4) - わらばんし仄聞記
  • アセンブラの基礎 3

    著作: DABhand 比較とジャンプ ============== 最後である今回の説明は今迄よりいっそう高度なものになります。 三回を通してよく学べば、単純なトレーナーと値の走査方法の仕組みがよく理解できるようになっている筈です。 まず始めにフラグについて説明します。 このフラグについては別に難しい事はありません。 フラグレジスタ ============== フラグレジスタとは計算や他のイベントに依存してセット/解除される一連のフラグの集まりの事です。重要なものを以下に列挙します: ZF (ゼロフラグ) このフラグは直前の計算結果(比較命令は実際には結果が保存されていない減算を行っています)がゼロになった場合にセットされます。 SF (符号フラグ) 直前の計算結果が負数になればセットされます。 CF (キャリーフラグ) 計算後の最左ビットを格納します。 OF (オーバーフローフラグ)

  • ざっくりアセンブラ入門 - Qiita

    書いてる人 プログラミング学習サービスやら、ペットサロン予約サービス、風俗検索サービスなど色々とやっている「かずきち」です。 ■運営サービス一部 http://crazy-wp.com/ http://webukatu.com/ 新宿のホストから不動産・保険の営業を経て、HTMLって何?という状態から3ヶ月独学でプログラミングやデザインを学び、IT業界で1年間実務経験を積んで年収は1超え。現在は起業家としてサービス運営やら不動産運営をしています。 Qiita内にそれ系の記事も書いてます。 エンジニアで稼ぐために大切な13のコト WEBサービス起業したい人に読んで欲しい18のコト アセンブラってなに? アセンブリ言語のこと。C言語よりももっと機械に近く、機械語(1と0の世界)を人間に分かり易くした言語。 C言語などを作るための言語。 C言語には1行のプログラムには何行ものアセンブリ言語が

    ざっくりアセンブラ入門 - Qiita
  • アセンブラの基礎 1

    著作: DABhand 基礎 オペコード ========== オペコードとは何でしょうか? オペコードとはプロセッサが解釈できる命令の事です。例えば次の様なオペコードがあります: SUB、ADD、DIV SUB命令は2つの数値から減算(引き算)を行います。殆どのオペコードが演算数(オペランド)を持っています。 SUB 転送先,転送元 これは例えば次の様になります SUB eax, ecx SUBは転送先と転送元という二つの演算数を持っています。転送先の値から転送元の値を引き、その結果を転送先に格納します。演算数としては次の種類を指定できます: レジスタ、メモリ場所、即値 例えばeaxが20で、ecxが10であるとすれば、仮想的には次のような手順になります: eax = eax - ecx eax = 20 - 10 eax = 10 …別に難しい事は無いですよね。 レジスタ ======

  • 『モンスターワールドII ドラゴンの罠』1989年オリジナル版のリバースエンジニアリング:正確性の探究 | POSTD

    こんにちは、Lizardcube社(現在フランスのパリを基点にしています)のOmarです。私は新作ゲーム「 Wonder Boy: The Dragon’s Trap 」のテクニカルディレクタ兼プログラマです。このゲームは、1989年にセガ/ウエストンにより発売された『モンスターワールドII ドラゴンの罠』のリメイク版です。このオリジナルは、初期のmetroidvaniaスタイル( 訳注:メトロイド(METROID)や悪魔城ドラキュラ(Castlevania)風 )のアクションアドベンチャーであり、カルト的な古典作品になっています。我々はこのゲームのライセンスをオリジナルの開発者から買い取りました。ゲームは DotEmu で公開される予定です。 メカドラゴンの呪いにより半人半竜のモンスターにされてしまった孤独な冒険者の、一生に一度の挑戦が始まる! 姿を変えられたアンチヒーローは呪いを解く方

    『モンスターワールドII ドラゴンの罠』1989年オリジナル版のリバースエンジニアリング:正確性の探究 | POSTD