プログラミング

記事数 17
  • プログラミング

【第7回】BSDでデータリンク層にフレームを送信するツールをC言語で作成する

本記事は第6回の記事のBSD版です。OpenBSDを使い、ARPリプライを送信するプログラムを作成します。参考:【第6回】Linuxでデータリンク層にフレームを送信するツールをC言語で作成するイーサネットヘッダーやARPに関する解説は第6回の記事でおこなっていますので、本記事ではB

  • プログラミング

【第6回】Linuxでデータリンク層にフレームを送信するツールをC言語で作成する

第5回でおこなったデータリンク層の読み出しに続き、今回は書き出し(送信)を行います。送信は非常に簡単なのですが、今回の内容は悪用するとLANで被害が出ますので注意してください。なお、本記事ではコードを追うことを容易にするためできるだけ関数化を避けています。またエラー処理も極力省いていますの

  • プログラミング

【第5回】Linuxでデータリンク層の通信を解析するツールをC言語で作成する

今回はデータリンク層で流れるフレームを解析してヘッダー値を表示したいと思います。データリンク層はハードウェアに依存するのですが、本記事ではイーサネットに限定して実装していきたいと思います。イーサネットヘッダー自体は非常にシンプルで見るべきところは大してないため、ARP/RARPヘッダーの解

  • プログラミング

【第4回】TCPヘッダーを設定して送信するツールをC言語で作成する

第4回目はTCPヘッダーを設定して送信するツールをC言語で作成します。第1回・第2回・第3回の続きとなっているので、過去の記事と重複する箇所の解説(IPヘッダーやバイトオーダーなど)は省略します。【第1回】パケットを受信してIPヘッダーを解析したりIPヘッダーを設定して送信したりするツー

  • プログラミング

【第3回】パケットを受信してTCPヘッダーを解析するツールをC言語で作成する

第3回目はTCP通信を解析するツールをC言語で作成します。第1回・第2回の続きとなっているので、過去の記事と重複する箇所の解説(IPヘッダーやバイトオーダーなど)は省略します。【第1回】パケットを受信してIPヘッダーを解析したりIPヘッダーを設定して送信したりするツールをC言語で作成する

  • プログラミング

低レイヤーのネットワークプログラミング時の注意点|LinuxとBSDの違いを考慮する

本記事はライブラリに頼らず自力で低レイヤーのネットワークプログラミングをおこなう場合に注意するべき点をまとめました。Linuxでパケットの送受信をおこなうプログラミング方法は以下の記事で解説しており、本記事は以下の記事の補足となっています。【第1回】パケットを受信してIPヘッダー

  • プログラミング

【第2回】パケットを受信してUDPヘッダーを解析したりUDPヘッダーを設定してUDPパケットを送信するツールをC言語で作成する

本記事は「【第1回】パケットを受信してIPヘッダーを解析したりIPヘッダーを設定して送信したりするツールをC言語で作成する」の続きです。前回はパケットを受信してIPヘッダーの内容を表示したりIPヘッダーを設定してパケットを送信しました。今回はUDPヘッダーの内容を表示したりUDPヘッダーを

  • プログラミング

【第1回】パケットを受信してIPヘッダーを解析したりIPヘッダーを設定して送信したりするツールをC言語で作成する

この記事では、ネットワークを流れる通信を受信してIPヘッダーを解析したり、自らIPv4ヘッダーを設定してネットワークに送信したりするための方法を解説します。ただし、すべてを解説すると非常に長くなるので最低限知っておかなければいけないパケット受信・送信の基礎的な知識を本記事では解説しています

  • プログラミング

【x86_64/Linux】アセンブリ言語でどのように関数を呼び出しているのかGDBで観察する

パソコンに搭載されるCPUはすっかり64ビットが当たり前になりました。そこで、古い知識をアップデートするためにC言語でシンプルなコードを書いてコンパイルし、GDBで逆アセンブルしつつステップ実行して動きを観察してみました。下準備次のようなシンプルなコードを用意し