goo blog サービス終了のお知らせ 

CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

ラダー言語をアッセンブリ言語に置き換えてみた

2025-07-14 03:52:17 | リバースエンジニアリング

以下に、簡単なラダー言語(ラダー図)の例と、それをx86アセンブリ言語に変換した例を説明します。

### ラダー図の例
```
|-----| |-----|-------( )--|
| A | | B | OUT |
```
**意味**:
入力条件 `A`(スイッチなど)と `B` が両方とも `ON` の場合、出力 `OUT`(リレーなど)をアクティブにする(AND 論理)。

---

### x86アセンブリ言語への変換例
```assembly
section .data
A db 1 ; 入力A (1=ON, 0=OFF)
B db 1 ; 入力B (1=ON, 0=OFF)
OUT db 0 ; 出力OUT

section .text
global _start

_start:
; A と B の状態をチェック
mov al, [A] ; ALレジスタにAの値をロード
and al, [B] ; A AND B を計算

; 結果をOUTに保存
mov [OUT], al ; 結果をOUTに書き込み

; システムコールで終了
mov eax, 1
int 0x80
```

---

### 動作説明
1. **データセクション**:
- `A`, `B`: 入力状態(1=ON, 0=OFF)
- `OUT`: 出力結果(初期値0)

2. **ロジック処理**:
- `A` と `B` の値を `AND` 演算で比較
- 両方が `1`(ON)の場合のみ `OUT=1` に設定

---

### 複雑なラダー図の例(OR ロジック)
```
|-----|-------( )--|
| A | OUT |
|-----| |
| B | |
```
**アセンブリ変換**:
```assembly
mov al, [A]
or al, [B] ; A OR B を計算
mov [OUT], al
```

---

### 注意点
1. **PLC vs 汎用CPU**:
- 実際のPLCは専用ハードウェアで動作し、スキャンサイクル(入力→演算→出力の繰り返し)を持ちます。
- 上記アセンブリは汎用CPU用の単発実行です。

2. **入出力処理**:
- 実際のPLCでは物理I/Oポートを直接操作します。
- 例: `in`/`out` 命令でハードウェア制御(DOS環境例):
```assembly
in al, 0x60 ; ポート0x60から入力読み取り
out 0x80, al ; ポート0x80へ出力
```

3. **タイマー処理の例**:
- ラダー図でよく使われるタイマーは、CPUのタイマー割り込みやループカウンタで実装します。

この変換は概念を示すものです。実際のPLCはアーキテクチャが異なり、専用コンパイラで機械語に変換されます。

メールアドレススプーフィングのやり方と対策

2025-04-10 11:27:36 | リバースエンジニアリング
**メールアドレススプーフィング(Email Spoofing)** は、送信者メールアドレスを偽装して、受信者に本物と誤認させる手法です。フィッシング詐欺やマルウェア配信、ビジネスメール詐欺(BEC)などに悪用されます。

---

## **メールアドレススプーフィングの主な手口**
### **1. SMTPプロトコルの脆弱性を悪用**
- **SMTP(Simple Mail Transfer Protocol)** 自体には送信者認証機能がないため、`From` フィールドを自由に改ざん可能。
- 例:
```
From: support@paypal.com(実際は attacker@example.com から送信)
```

### **2. ドメイン偽装(ドメインスプーフィング)**
- **似たドメイン名を使う**(例:`paypa1.com`、`amaz0n.net`)。
- **Unicode文字を悪用**(`аmazon.com`(キリル文字の「а」)など)。

### **3. リプレイ攻撃(正規メールの転用)**
- 過去に正規企業から届いたメールを改ざんし、再送信する。

### **4. フィッシングメールでの利用**
- 偽のログインページへ誘導し、クレジットカード情報やパスワードを盗む。
- 例:
> 「あなたのアカウントに異常があります。すぐに確認してください」
> (本物そっくりの偽サイトへリンク)

---

## **メールスプーフィングの対策**
### **【個人向け】**
1. **送信元アドレスを過信しない**
- メールの `From` 欄は簡単に偽装可能。**内容やリンク先を必ず確認**する。

2. **SPF・DKIM・DMARCを確認**
- 受信メールのヘッダーをチェックし、認証が通っているか確認(※後述)。

3. **不審なリンク・添付ファイルを開かない**
- URLにマウスオーバーし、実際のリンク先を確認。
- `.exe`、`.zip` などの不審なファイルは実行しない。

4. **二段階認証(2FA)を有効化**
- パスワードが漏れても、SMSや認証アプリで保護可能。

5. **迷惑メールフィルターを活用**
- Gmail・Outlook などのフィルタリング機能を有効にする。

---

### **【企業・ドメイン管理者向け】**
#### **1. SPF(Sender Policy Framework)**
- **「自社ドメインから送信できるメールサーバー」をDNSで登録**し、未許可サーバーからの送信を拒否。
```
example.com のDNSレコードに以下を追加:
v=spf1 include:_spf.google.com ~all
```

#### **2. DKIM(DomainKeys Identified Mail)**
- **電子署名**をメールに添付し、改ざんを検知。
```
DNSに公開鍵を登録し、受信側で検証。
```

#### **3. DMARC(Domain-based Message Authentication)**
- **SPF/DKIMの認証失敗時のポリシー**(拒否・隔離・許可)を設定。
```
_dmarc.example.com のDNSレコード例:
v=DMARC1; p=reject; rua=mailto:admin@example.com
```

#### **4. 従業員教育**
- **BEC(ビジネスメール詐欺)対策**として、金銭・データの要求時に電話で確認するルールを徹底。

#### **5. セキュリティツールの導入**
- **メールゲートウェイ(Proofpoint、Mimecastなど)** でスプーフィングメールをブロック。

---

## **偽装メールの見分け方**
- **ヘッダー情報を確認**(Gmailなら `「…」→「メッセージのソースを表示」`)。
- `Return-Path` と `From` が一致しない場合は要注意。
- **SPF/DKIM/DMARC の認証結果**をチェック。

例(正規メールのヘッダー):
```
Received-SPF: Pass
Authentication-Results: dkim=pass header.i=@example.com;
DMARC-Status: pass
```

---

## **まとめ**
✅ **個人は** → リンク・添付ファイルに注意し、2FAを有効化。
✅ **企業は** → **SPF・DKIM・DMARC** を設定し、従業員訓練を実施。
✅ **共通** → メールの送信元を過信せず、**必ず二次確認**する習慣を。

メールスプーフィングは技術的に難しくないため、**「このメール、本当に本物?」と常に疑うことが最大の防御策**です。

AI手相鑑定アプリ

2025-01-12 21:15:46 | リバースエンジニアリング

AI手相鑑定Libra - カメラで診断する手相占いアプリ - Apps on Google Play

AI手相鑑定Libra - カメラで診断する手相占いアプリ - Apps on Google Play

Limited time menu “You in 2025” is now available! The latest AI thoroughly evaluates your personality based on your palm reading and zodiac sign for free!

PythonでAI画像診断アプリのネタを考えていたら、手相占いアプリを作れば売れるだろうと思ってGooglePlayStoreを探ってみたら、残念ながらもうすでに先行者がいた。

しかもこのアプリは広告を見れば無料で使えるというもの。鑑定内容は当たるかどうかは別として無料ならば許容範囲。
ただし、これを高額のサブスクや買い切りで販売するとなるとボッタクリで全然的外れと言われかねないと思う。

やはり単価が低くて粗利も低いスマホアプリ業界は厳しすぎる。個人が小銭稼ぎを目的として片手間で副業・趣味としてやるなら話は別だが。

もちろんこのアプリはapkファイルを引っこ抜いてソースコードを解析してポイッチョしたるわwww



ヤバいよjadx。Androidアプリのソースコード丸見えwww

2023-11-05 13:06:20 | リバースエンジニアリング

↑のサイトに書かれている通りにやってみたら、ウチの会社の施工管理アプリのソースコードが丸見えになってしまったwww

ヤバいヤバいwwwマジでヤバいwww

しかし、それにしても、こんな高機能なアプリを作らせておいて、ソースコードの難読化すらやっていないとはwww

Androidタブレットにインストールして使っているのだが、かなりリソースを喰っているようで、頻繁にフリーズしやがる。

何言語で作ってるのか、さぞかし遅い言語で作ったんだろうな。どうせJavascriptあたりだろ?
・・・と思ったら、何と!Kotlinだったwww

JavaもKotlinもガベージコレクションを利用してメモリの管理ができるはずなのに、何でこんなにリソースを喰っているのだろうか?

C++で作り直しやがれ!と言いたい。
今、働いている現場の担当の職長もイライラしながら使っている。

この職長の不倫相手の女に俺がニックネームをKotlinとつけてやったことがある。皮肉にもこの糞アプリの言語がKotlinとはなwww

Androidアプリの開発言語の大半はJavaで一部Kotlinらしい。専門書や技術書を漁ってみたが、碌でも無い糞本だらけで話にならない。
こんな糞本をいくら読んだところで実務レベルに達しないし、基礎レベルを脱することすら不可能だ。

ほとんどのIT系企業はただの丸投げピンハネ屋だから、ウチの会社の施工管理アプリすら作れない。

リソース不足になることに対しては目を瞑るが、それにしてもかなり高機能だ。
俺が凄いと思った所は・・・
PDF化された図面を読み込んで施工箇所のハッチングを認識してボタンを付け、ボタンを押すと施工ナンバーと施工寸法等の設計値データテーブルを生成して表示し、施工完了時の実際の施工寸法を下の段に入力させる所だ。
さらに凄いのが、施工スパンを変えるために複数の施工箇所を一つに纏めてニコイチみたいにしたり、一度に施工できないから分割したりできるところだ。

※残念ながら、バレたらタイーフォもんだからソースコードは晒せない。
晒すとしたら外国のアプリなら問題ないだろう。日本の著作権法とか特許とかの効力の及ぶ範囲にはならないはず。

GooglePlayアプリストアからこれと覚しきアプリをバンバンインストールしていき、apkファイルを抜いてバンバン逆コンパイルして技術を盗んでいこうかな?www

Androidアプリ逆コンパイル・改竄対策について

2023-10-24 00:35:16 | リバースエンジニアリング

Androidアプリの逆コンパイル対策は、Androidアプリ開発業者・販売業者にとって死活問題だ。

逆コンパイルされてソースコードが顕になると、機能制限された体験版がフル機能版として使えるように改竄されたり、サブスクリプション版が永続版に改竄されたりしてしまう。

AndroidのAPKを逆コンパイルする

2023-10-24 00:02:18 | リバースエンジニアリング

AndroidのAPKを逆コンパイルする - Qiita

AndroidのAPKを逆コンパイルする - Qiita

2年ほど前に知ってて当たり前のように教えていただきました。最近、再び逆コンパイル(デコンパイル)する機会がございましたので、Qiita記事としてメモを投稿しておこうと思...

Qiita

AndroidのAPKを逆コンパイルしたいとふと思った。

そこでググったら出てきたのがこの記事。
JAVAで作ったAPKのサンプルファイルを逆コンパイルした実演記事である。

実際、スマホにインストールした任意のアプリのAPKファイルを逆コンパイルするのは、この記事のようにすんなりいかないはずだ。


Revit_2022_Ship_20210224_RTC_Win_64bit_di_ML_setup_webinstall.exeをホニャララ

2023-03-26 19:49:37 | リバースエンジニアリング

                             //
                             // Headers 
                             // ram:00400000-ram:004003ff
                             //
             assume DF = 0x0  (Default)
                             IMAGE_DOS_HEADER_00400000                       XREF[6]:     0040011c(*), 
                                                                                          FUN_00401885:0040195d(*), 
                                                                                          FUN_00403f05:00403f1d(*), 
                                                                                          FUN_00403f05:00403f32(*), 
                                                                                          FUN_00403f67:00403f7f(*), 
                                                                                          FUN_00403f67:00403f94(*)  
        00400000 4d 5a 90        IMAGE_DO
                 00 03 00 
                 00 00 04 
           00400000 4d 5a           char[2]   "MZ"                    e_magic                           XREF[6]:     0040011c(*), 
                                                                                                                     FUN_00401885:0040195d(*), 
                                                                                                                     FUN_00403f05:00403f1d(*), 
                                                                                                                     FUN_00403f05:00403f32(*), 
                                                                                                                     FUN_00403f67:00403f7f(*), 
                                                                                                                     FUN_00403f67:00403f94(*)  
              00400000 [0]            'M', 'Z'
           00400002 90 00           dw        90h                     e_cblp        Bytes of last page
           00400004 03 00           dw        3h                      e_cp          Pages in file
           00400006 00 00           dw        0h                      e_crlc        Relocations
           00400008 04 00           dw        4h                      e_cparhdr     Size of header in 
           0040000a 00 00           dw        0h                      e_minalloc    Minimum extra para
           0040000c ff ff           dw        FFFFh                   e_maxalloc    Maximum extra para
           0040000e 00 00           dw        0h                      e_ss          Initial (relative)
           00400010 b8 00           dw        B8h                     e_sp          Initial SP value
           00400012 00 00           dw        0h                      e_csum        Checksum
           00400014 00 00           dw        0h                      e_ip          Initial IP value
           00400016 00 00           dw        0h                      e_cs          Initial (relative)
           00400018 40 00           dw        40h                     e_lfarlc      File address of re
           0040001a 00 00           dw        0h                      e_ovno        Overlay number
           0040001c 00 00 00 00 00  dw[4]                             e_res[4]      Reserved words
                    00 00 00
           00400024 00 00           dw        0h                      e_oemid       OEM identifier (fo
           00400026 00 00           dw        0h                      e_oeminfo     OEM information; e
           00400028 00 00 00 00 00  dw[10]                            e_res2[10]    Reserved words
                    00 00 00 00 00 
                    00 00 00 00 00
           0040003c e8 00 00 00     ddw       E8h                     e_lfanew      File address of ne
           00400040 0e 1f ba 0e 00  db[64]                            e_program     Actual DOS program
                    b4 09 cd 21 b8 
                    01 4c cd 21 54


「GhidraでEXEファイルをデコンパイルする方法」でググってみたらwww

2023-03-26 07:25:16 | リバースエンジニアリング

Ghidraの使い方 | リバースエンジニアリングツールGhidraを使ってみた - BioErrorLog Tech Blog

Ghidraの使い方 | リバースエンジニアリングツールGhidraを使ってみた - BioErrorLog Tech Blog

Ghidraの環境構築/インストールから、Ghidraの使い方とリバースエンジニアリングの実践までの記録を残します。 はじめに 作業環境 Ghidraの使い方 環境構築 Ghidraをインス...

BioErrorLog Tech Blog


他にはこんなサイトもある。

このサイトでは、俺が長年思っていた疑問に対する答えを出している。

A.ログイン画面
B.パスワード判定
C.パスワードNG
D.パスワードOK

頭の悪いクラッカーはブルートフォースアタックで強行突破を試みようとするから、ABCのループを繰り返して通報されてしまうか、膨大な時間を浪費する徒労に終わってしまう。

あっけなくソフトがクラックされたり、ホームページが改竄されたりしているのを目の当たりにすると、Bをすっ飛ばしてAからいきなりDに行く方法があるのではないか?
と考えていた。

実はその方法がいくつか存在し、その内の一つが
に書かれていた。
まさしくA→DのようにBをすっ飛ばして直でDに行ける方法だ。
つまりログイン画面でパスワードを入力することなく、いきなりDに行けてしまう方法だ。

GhidraでPythonファイルをデコンパイルしてみた。

2023-03-25 21:37:29 | リバースエンジニアリング

こちらがクラックしようとしている所www

拡大写真

ソースコード

import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
# 正弦波のデータ作成
f = 100
rate = 44100
T = np.arange(0, 0.01, 1 / rate)
s = []
for t in T:
v = np.sin(2 * np.pi * f * t)
s.append(v)

plt.plot(T, s)
plt.xlabel('Time')
plt.ylabel('Gain')
plt.show()

# フーリエ変換
fft_data = np.abs(np.fft.rfft(s))
freqList = np.fft.rfftfreq(len(s), 1.0 / rate) # 横軸
plt.loglog(freqList, 10 * np.log(fft_data))
plt.xlabel('Frequency')
plt.ylabel('Power')
plt.show()

# 逆フーリエ変換
r = np.fft.irfft(fft_data, len(T))
plt.plot(T, r)
plt.xlabel('Time')
plt.ylabel('Gain')
plt.show()

背景が水色で赤色の文字のところがキャプチャー画像に見えていて該当するところ。

拡張子がpyの生のPythonファイルはIDLEとかスパイダーとかなくてもソースコードが余裕でバレバレになることが分かった。

まだGhidraの使い方は全然分からなくて、適当にやってみただけだが、マジで恐ろしい代物だ。

もっと勉強して使いこなせるようになりたいものだ。


radare2の使い方 radare2で逆コンパイル&リバースエンジニアリング

2023-02-20 18:23:50 | リバースエンジニアリング

radare2の使い方 | リバースエンジニアリング入門#5 - BioErrorLog Tech Blog

radare2の使い方 | リバースエンジニアリング入門#5 - BioErrorLog Tech Blog

radare2のインストール方法から簡単な使い方までを記録しました。 直感では使いにくい面も感じましたが、使い慣れれば強力な武器となってくれるでしょう。 はじめに 作業環...

BioErrorLog Tech Blog

逆コンパイル&リバースエンジニアリングツールとしてGhidraを以前紹介したが、Ghidraについてのyoutube動画を検索していた際にコメント欄にradare2という逆コンパイル&リバースエンジニアリングツールの紹介があったから、ググってみたらradare2の使い方が出て来た。

面白そうだ。

こんなことばかりしてたらこの子に叱られそうだwww


いやあ~しかし、この子かわいくなって乙牌もデカくなったなあ。

マスタリングGhidra ―基礎から学ぶリバースエンジニアリング完全マニュアル

2023-02-18 18:19:00 | リバースエンジニアリング
マスタリングGhidra ―基礎から学ぶリバースエンジニアリング完全マニュアル https://amzn.asia/d/ec2dLEX
Title: O'Reilly Japan - マスタリングGhidra

Title: O'Reilly Japan - マスタリングGhidra

Found on Google from oreilly.co.jp

なぜ日本のIT業界は遅れていてダメダメなのか?
それはこういう情報は頑なに秘匿しておきたいからである。
日本のIT技術を貶めたい在★日勢力の仕業である。
日本にはこの手のアングラ本はほとんど出版されていないが、海外ではバンバン出版されていてダダ漏れ状態らしい。
特に中国あたりは無法地帯か?www
そりゃあコイツらには勝てんわけだわな。

リバースエンジニアリングツールGhidra実践ガイド ~セキュリティコンテスト入門からマルウェア解析まで

2023-02-18 18:17:09 | リバースエンジニアリング
リバースエンジニアリングツールGhidra実践ガイド ~セキュリティコンテスト入門からマルウェア解析まで~ (Compass Booksシリーズ) https://amzn.asia/d/28FucY7
Title: Amazon.co.jp: リバースエンジニアリングツールGhidra実践ガイド (Compass Booksシリーズ) eBook : 中島 将太,  小竹 泰一, 原 弘明, 川畑 公平: 本

Title: Amazon.co.jp: リバースエンジニアリングツールGhidra実践ガイド (Compass Booksシリーズ) eBook : 中島 将太, 小竹 泰一, 原 弘明, 川畑 公平: 本

Found on Google from amazon.co.jp



【インストーラーを逆コンパイルする】でググってみた

2023-02-18 12:53:02 | リバースエンジニアリング

「インストーラーを逆コンパイルする」
でググってみたらいろいろ出て来たwww

何を逆コンパイルするのか?
何のファイルを逆コンパイルするのか?
で検索結果は違ってくると思われる。

全ての種類のファイルを逆コンパイルするというのは無理かもしれないが、exeファイルを逆コンパイルする、で検索するといろいろ出て来る。

じゃあdllファイルとかその他のソフト・アプリを構成している種類のファイルを逆コンパイルするのはどうか?
逆コンパイルしてみたらどうなるのか?