<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MT4解除研究所</title>
	<atom:link href="https://mt4decompile.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://mt4decompile.com/</link>
	<description>EAの中身を、知るための場所</description>
	<lastBuildDate>Fri, 12 Jun 2026 04:21:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://mt4decompile.com/wp-content/uploads/2025/12/cropped-cropped-images-32x32.jpg</url>
	<title>MT4解除研究所</title>
	<link>https://mt4decompile.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://mt4decompile.com/feed/"/>
	<item>
		<title>EAデコンパイル解除は違法か？依頼前に整理しておく考え方</title>
		<link>https://mt4decompile.com/ea-decompile-illegal/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 06:02:39 +0000</pubDate>
				<category><![CDATA[注意]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=706</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ea-decompile-illegal/">EAデコンパイル解除は違法か？依頼前に整理しておく考え方</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>ea デコンパイル 違法</strong><br>このキーワードで調べている人は、かなり慎重だと思う。</p>



<p class="wp-block-paragraph">解除したい理由はある。<br>でも、<br>「これって法律的に大丈夫なのか」<br>「あとで問題にならないか」<br>そこが引っかかっている。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを実務として扱うエンジニア</strong>だが、<br>このテーマは「グレー」「黒」「アウト」と雑に語られすぎている印象がある。</p>



<p class="wp-block-paragraph">なので最初に、<br>結論をかなり正確な言葉で書く。</p>



<p class="wp-block-paragraph"><strong>EAデコンパイル解除は、それ自体が自動的に違法になる行為ではない。<br>ただし、前提条件を無視すると違法性が生じるケースはある。</strong></p>



<p class="wp-block-paragraph">この「前提条件」を整理できているかどうか。<br>それだけで話は大きく変わる。</p>



<p class="wp-block-paragraph">もし今、<br>「不安を一度ちゃんと整理したい」<br>そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">「違法かどうか」を一言で答えられない理由</h2>



<p class="wp-block-paragraph">まず、なぜこの質問がややこしいのか。</p>



<p class="wp-block-paragraph">それは、</p>



<p class="wp-block-paragraph"><strong>EAデコンパイル解除が<br>法律・契約・利用条件<br>この3つのレイヤーをまたぐ行為だから</strong>だ。</p>



<p class="wp-block-paragraph">混ぜて考えると、必ず誤解が生まれる。</p>



<h2 class="wp-block-heading">法律上、EAデコンパイルは違法なのか</h2>



<p class="wp-block-paragraph">日本法ベースで整理する。</p>



<p class="wp-block-paragraph">EX4ファイルは「プログラム」だ。<br>プログラムは著作物に該当する。</p>



<p class="wp-block-paragraph">ただし、ここが重要だ。</p>



<p class="wp-block-paragraph"><strong>解析・研究・互換性確保を目的としたリバースエンジニアリングは、<br>一律に禁止されているわけではない。</strong></p>



<p class="wp-block-paragraph">実際、</p>



<ul class="wp-block-list">
<li>解析すること</li>



<li>構造を理解すること</li>



<li>動作を調べること</li>
</ul>



<p class="wp-block-paragraph">これ自体が、即違法になるわけではない。</p>



<p class="wp-block-paragraph">つまり、</p>



<p class="wp-block-paragraph"><strong>「デコンパイルした＝違法」<br>ではない。</strong></p>



<h2 class="wp-block-heading">違法性が生じる可能性があるポイント</h2>



<p class="wp-block-paragraph">では、どこでアウトになるのか。</p>



<p class="wp-block-paragraph">ポイントはここだ。</p>



<h3 class="wp-block-heading">著作権侵害になるケース</h3>



<ul class="wp-block-list">
<li>デコンパイルしたコードを再配布</li>



<li>第三者に販売</li>



<li>無断で公開</li>
</ul>



<p class="wp-block-paragraph">こうした行為は、<br>明確にアウトになる可能性が高い。</p>



<p class="wp-block-paragraph">だが、<br><strong>自分で使うために解析すること自体とは、話が別</strong>だ。</p>



<h3 class="wp-block-heading">不正競争防止法との関係</h3>



<p class="wp-block-paragraph">技術情報を盗用し、<br>競合製品を作る。</p>



<p class="wp-block-paragraph">こうした行為は問題になる。</p>



<p class="wp-block-paragraph">だが、</p>



<p class="wp-block-paragraph">「自分の環境で動かすために解除する」<br>という目的とは、次元が違う。</p>



<h2 class="wp-block-heading">多くの人が引っかかるのは「契約」の問題</h2>



<p class="wp-block-paragraph">実務上、<br>一番トラブルになりやすいのはここだ。</p>



<h3 class="wp-block-heading">利用規約・契約条件</h3>



<p class="wp-block-paragraph">EAを購入・提供された際、</p>



<ul class="wp-block-list">
<li>利用規約</li>



<li>ライセンス条件</li>



<li>使用範囲</li>
</ul>



<p class="wp-block-paragraph">これらに<br>「改変禁止」「解析禁止」<br>と書かれている場合がある。</p>



<p class="wp-block-paragraph">この場合、</p>



<p class="wp-block-paragraph"><strong>違法というより、契約違反</strong>になる。</p>



<p class="wp-block-paragraph">つまり、</p>



<p class="wp-block-paragraph">刑事罰ではなく、<br>民事トラブルの領域だ。</p>



<h2 class="wp-block-heading">IB目的で渡されたEAは特に注意が必要</h2>



<p class="wp-block-paragraph">現場で一番多いのが、このケースだ。</p>



<p class="wp-block-paragraph">IB（紹介報酬）目的で、<br>特定口座専用として配布されたEA。</p>



<p class="wp-block-paragraph">これは、</p>



<ul class="wp-block-list">
<li>技術的には解除できる</li>



<li>法律的にも即アウトではない</li>
</ul>



<p class="wp-block-paragraph">だが、</p>



<p class="wp-block-paragraph"><strong>前提条件を崩す行為</strong>になる。</p>



<p class="wp-block-paragraph">だからこそ、<br>解除前に整理すべきポイントがある。</p>



<p class="wp-block-paragraph">この点については、<br>次の記事で詳しくまとめている。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ea-account-lock-release">EAの口座縛り解除を依頼する前に確認すべきポイント｜IB目的対応</a></p>



<h2 class="wp-block-heading">「違法」と言われがちな理由の正体</h2>



<p class="wp-block-paragraph">なぜ、<br>EAデコンパイル解除は<br>「違法っぽい」と言われがちなのか。</p>



<p class="wp-block-paragraph">理由は3つある。</p>



<h3 class="wp-block-heading">① グレーゾーンを一括りにしている</h3>



<p class="wp-block-paragraph">技術行為と、<br>再配布・販売行為を<br>同じ箱に入れて語られている。</p>



<p class="wp-block-paragraph">これが混乱の原因だ。</p>



<h3 class="wp-block-heading">② 海外情報が混ざっている</h3>



<p class="wp-block-paragraph">海外では、<br>法体系が違う。</p>



<p class="wp-block-paragraph">その情報を<br>日本にそのまま当てはめると、<br>話がズレる。</p>



<h3 class="wp-block-heading">③ 感情論が混ざる</h3>



<p class="wp-block-paragraph">「作者がかわいそう」<br>「ズルい」</p>



<p class="wp-block-paragraph">これは倫理の話であって、<br>違法かどうかとは別だ。</p>



<h2 class="wp-block-heading">技術者視点での現実的な整理</h2>



<p class="wp-block-paragraph">ここで、かなり現実的な話をする。</p>



<p class="wp-block-paragraph">EAデコンパイル解除は、</p>



<ul class="wp-block-list">
<li>黙ってやっている人が大多数</li>



<li>トラブルになるケースは少数</li>
</ul>



<p class="wp-block-paragraph">なぜか。</p>



<p class="wp-block-paragraph">多くの場合、</p>



<ul class="wp-block-list">
<li>再配布しない</li>



<li>販売しない</li>



<li>静かに使う</li>
</ul>



<p class="wp-block-paragraph">この範囲に収まっているからだ。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> デコンパイルはこちら<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">https://mt4decompile.com</a></p>



<h2 class="wp-block-heading">自力解除と依頼解除で変わるリスク</h2>



<p class="wp-block-paragraph">自力で解除する場合、</p>



<ul class="wp-block-list">
<li>どこまで触ったか不明確</li>



<li>余計な改変が入りやすい</li>
</ul>



<p class="wp-block-paragraph">結果として、<br>問題が起きた時に説明できない。</p>



<p class="wp-block-paragraph">依頼解除の場合、</p>



<ul class="wp-block-list">
<li>目的が明確</li>



<li>再構築前提</li>



<li>不要な変更が少ない</li>
</ul>



<p class="wp-block-paragraph"><strong>結果として、リスクが整理されやすい。</strong></p>



<h2 class="wp-block-heading">「違法か？」より先に考えるべきこと</h2>



<p class="wp-block-paragraph">ここが一番伝えたい。</p>



<p class="wp-block-paragraph">本当に考えるべきなのは、</p>



<ul class="wp-block-list">
<li>何のために解除するのか</li>



<li>どこまで使うのか</li>



<li>誰に影響が出るのか</li>
</ul>



<p class="wp-block-paragraph">この3点だ。</p>



<p class="wp-block-paragraph">「違法かどうか」だけを見ていると、<br>判断を誤りやすい。</p>



<h2 class="wp-block-heading">まとめの前に整理しておく</h2>



<p class="wp-block-paragraph">EAデコンパイル解除について、</p>



<ul class="wp-block-list">
<li>行為そのものが即違法ではない</li>



<li>問題になりやすいのは再配布・販売</li>



<li>多くは契約・前提条件の話</li>
</ul>



<p class="wp-block-paragraph">この整理ができていれば、<br>必要以上に怖がる必要はない。</p>



<h2 class="wp-block-heading">まとめ｜EAデコンパイル解除は違法なのか</h2>



<p class="wp-block-paragraph"><strong>EAデコンパイル解除は、<br>それ自体が一律に違法とされる行為ではない。</strong></p>



<p class="wp-block-paragraph">ただし、</p>



<ul class="wp-block-list">
<li>契約条件</li>



<li>利用目的</li>



<li>その後の扱い</li>
</ul>



<p class="wp-block-paragraph">ここを無視すれば、<br>問題になる可能性はある。</p>



<p class="wp-block-paragraph">だからこそ、</p>



<p class="wp-block-paragraph">解除できるか<br>ではなく、<br><strong>解除すべきか。</strong></p>



<p class="wp-block-paragraph">この視点で考えるのが、一番安全だ。</p>



<p class="wp-block-paragraph">もし今、<br>「法的・契約的な不安を整理したい」<br>そう感じているなら、<br>判断材料としてここを確認しておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> デコンパイルはこちら<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">https://mt4decompile.com</a></p>



<p class="wp-block-paragraph">静かに、<br>分かっている人だけが進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ea-decompile-illegal/">EAデコンパイル解除は違法か？依頼前に整理しておく考え方</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EAデコンパイル解除はバレる？依頼前に知っておくべき点</title>
		<link>https://mt4decompile.com/ea-decompile-detected/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 05:56:56 +0000</pubDate>
				<category><![CDATA[注意]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=703</guid>

					<description><![CDATA[<p>ea デコンパイル バレるこの言葉で検索している時点で、正直だと思う。 解除したい気持ちはある。でも同時に、「どこかに通知が飛ぶんじゃないか」「あとで問題になるんじゃないか」そんな不安もある。 私は EX4デコンパイルを...</p>
<p>投稿 <a href="https://mt4decompile.com/ea-decompile-detected/">EAデコンパイル解除はバレる？依頼前に知っておくべき点</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>ea デコンパイル バレる</strong><br>この言葉で検索している時点で、正直だと思う。</p>



<p class="wp-block-paragraph">解除したい気持ちはある。<br>でも同時に、<br>「どこかに通知が飛ぶんじゃないか」<br>「あとで問題になるんじゃないか」<br>そんな不安もある。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを実務として扱っているエンジニア</strong>だが、この質問は本当に多い。そして、多くの不安は少しズレている。</p>



<p class="wp-block-paragraph">結論から書く。</p>



<p class="wp-block-paragraph"><strong>正しくデコンパイル・再構築できていれば、技術的に「検知される」ことはない。</strong></p>



<p class="wp-block-paragraph">ただし、そこに至らないケースが多い、というのが現実だ。</p>



<div style="text-align:center; margin: 32px 0;">
  <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" style="display:inline-block; background:#e8622a; color:#fff; padding:14px 44px; border-radius:50px; font-weight:700; font-size:15px; text-decoration:none;">無料でお見積もり →</a>
  <p style="color:#888; font-size:12px; margin-top:10px;">最短1日で納品可能・実績5,000件以上</p>
</div>



<h2 class="wp-block-heading">「EAデコンパイルがバレる」とは何を指しているのか</h2>



<p class="wp-block-paragraph">まず言葉を整理する。「バレる」という表現には、実は複数の意味が混ざっている。</p>



<ul class="wp-block-list">
<li>開発者に通知されるのか</li>


<li>ブローカーに検知されるのか</li>


<li>契約違反として問題になるのか</li>
</ul>



<p class="wp-block-paragraph">この3つは、まったく別の話だ。</p>



<h2 class="wp-block-heading">デコンパイルしただけで通知されることはあるか</h2>



<p class="wp-block-paragraph">結論は明確だ。</p>



<p class="wp-block-paragraph"><strong>EX4ファイルをローカルでデコンパイルしただけで、開発者や販売元に通知が飛ぶことはない。</strong></p>



<p class="wp-block-paragraph">EX4は実行ファイルだ。コピーして解析しても、それ自体が外部と通信することはない。「解析した瞬間にバレる」ということは、技術的には起こらない。</p>



<h2 class="wp-block-heading">解除したEAを動かすとブローカーにバレるのか</h2>



<p class="wp-block-paragraph">これもよくある誤解だ。ブローカーが見ているのは、注文内容、ロット、頻度、約定の挙動——つまり<strong>トレード結果だけ</strong>だ。</p>



<p class="wp-block-paragraph">EAの内部構造や、口座縛りが解除されているかどうかを直接チェックする仕組みはない。「解除したEAを動かしたら即バレる」ということは起きない。</p>



<h2 class="wp-block-heading">外部通信・認証型EAはどうなのか</h2>



<p class="wp-block-paragraph">ここが、よく話がズレるポイントだ。たしかに、EAの中には外部通信が組み込まれているもの、サーバー認証型の設計のもの、挙動ログを送信する仕組みを持つものが存在する。</p>



<p class="wp-block-paragraph">だが、ここで重要なのは一点だけ。</p>



<p class="wp-block-paragraph"><strong>それらはすべて「コードとして実装されている処理」だ。</strong></p>



<p class="wp-block-paragraph">つまり、デコンパイル後にその処理を正しく特定し、完全に除去・再構築できていれば、<strong>検知される仕組みそのものが存在しなくなる。</strong></p>



<h2 class="wp-block-heading">それでも「問題が起きる」と言われる理由</h2>



<p class="wp-block-paragraph">では、なぜ「検知される可能性がある」と言われるのか。理由は単純だ。</p>



<p class="wp-block-paragraph"><strong>多くのケースで、処理が&#8221;完全には消せていない&#8221;。</strong></p>



<h3 class="wp-block-heading">処理の一部だけを消しているケース</h3>



<p class="wp-block-paragraph">通信処理そのものは消した。でも、通信前提のフラグ、状態管理、条件分岐が残っている。この場合、外部に通知はされないが、<strong>EAの挙動が変わる。</strong>結果として不自然な取引、停止、偏った挙動が発生し、「バレた」と誤解される。</p>



<h3 class="wp-block-heading">認証処理がロジックに組み込まれているケース</h3>



<p class="wp-block-paragraph">最近のEAは特に多い。認証結果を前提にロット計算やエントリー条件が組まれている。ここを雑に消すと、挙動が破綻する。これも、検知ではなく<strong>設計崩壊</strong>だ。</p>



<h2 class="wp-block-heading">技術的に正確な整理</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">デコンパイルして外部通信・認証・ログ送信の処理を完全に特定・除去・再構築できていれば、技術的に検知されることはない。</p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">表層だけを無効化した解除では、結果的に目立つ挙動になることがある。</p>
</blockquote>



<p class="wp-block-paragraph">この違いを理解していないと、不安だけが先行する。</p>



<h2 class="wp-block-heading">IB目的で渡されたEAの場合の注意点</h2>



<p class="wp-block-paragraph">ここで一つ、技術とは別の話をしておく。IB目的で渡されたEAの場合、解除が<strong>契約・利用条件に反する可能性</strong>はある。</p>



<p class="wp-block-paragraph">これは「バレるかどうか」ではなく、「どういう前提で渡されたか」の問題だ。この点については、次の記事で詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ea-account-lock-release">EAの口座縛り解除を依頼する前に確認すべきポイント｜IB目的対応</a></p>



<h2 class="wp-block-heading">自力解除と依頼解除の差</h2>



<p class="wp-block-paragraph">自力で解除を試みる場合、どうしても「部分解除」になりやすい。結果として、挙動が変わる、安定しない、余計に目立つ——こうなるケースは多い。</p>



<p class="wp-block-paragraph">再構築前提で解除する場合、設計を読み替えたうえで整えるため、挙動が自然になる。</p>



<h2 class="wp-block-heading">まとめ｜EAデコンパイル解除は本当にバレるのか</h2>



<p class="wp-block-paragraph"><strong>EAデコンパイル解除が自動的にバレる、ということはない。</strong></p>



<p class="wp-block-paragraph">ただし、設計を理解せず、部分的に処理を消し、挙動を崩せば、結果的に目立つ。重要なのは、バレるかどうかではなく、<strong>どう解除するか。</strong></p>



<p class="wp-block-paragraph">静かに、分かる人だけが進めばいい。</p>



<div style="margin: 40px 0;">

<div style="background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 28px; margin-bottom: 24px;">
  <p style="color: #fff; font-size: 16px; font-weight: 700; margin: 0 0 6px 0;">まずはデコンパイル可能か診断する</p>
  <p style="color: #888; font-size: 13px; margin: 0 0 16px 0;">5つの質問・約1分で判定します</p>
  <style>
    .diag3-q{background:#242424;border:1px solid #333;border-left:3px solid #e8622a;border-radius:6px;padding:14px;margin-bottom:10px}.diag3-q.hidden{display:none}.diag3-q-title{color:#e0e0e0;font-size:13px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}.diag3-qnum{background:#e8622a;color:#fff;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.diag3-options{display:flex;flex-direction:column;gap:6px}.diag3-option{display:flex;align-items:center;padding:8px 12px;background:#1a1a1a;border:1px solid #333;border-radius:4px;cursor:pointer;font-size:13px;color:#ccc;transition:all .2s}.diag3-option:hover{border-color:#e8622a;color:#fff}.diag3-option input{margin-right:8px;accent-color:#e8622a}.diag3-progress{width:100%;height:3px;background:#333;border-radius:2px;margin-bottom:14px}.diag3-progress-fill{height:100%;background:#e8622a;transition:width .3s;border-radius:2px}.diag3-btn{background:#e8622a;color:#fff;border:none;padding:10px 28px;font-size:13px;font-weight:700;border-radius:4px;cursor:pointer;transition:background .2s}.diag3-btn:hover{background:#d05520}.diag3-btn:disabled{background:#444;color:#777;cursor:not-allowed}.diag3-result{background:#242424;border:1px solid #333;border-radius:6px;padding:20px;text-align:center}.diag3-result.hidden{display:none}.diag3-badge{display:inline-block;padding:4px 14px;border-radius:20px;font-size:11px;font-weight:700;margin-bottom:10px;letter-spacing:.5px}.diag3-badge.easy{background:#2e7d32;color:#fff}.diag3-badge.medium{background:#e65100;color:#fff}.diag3-badge.hard{background:#b71c1c;color:#fff}.diag3-result-title{color:#fff;font-size:17px;font-weight:700;margin-bottom:8px}.diag3-result-msg{color:#aaa;font-size:13px;line-height:1.7;margin-bottom:16px}.diag3-cta-btn{display:inline-block;background:#e8622a;color:#fff;padding:12px 32px;border-radius:4px;font-weight:700;font-size:14px;text-decoration:none}.diag3-cta-btn:hover{background:#d05520}
  </style>
  <div id="diag3Form">
    <div id="diag3Progress" class="diag3-progress" style="display:none;"><div id="diag3Fill" class="diag3-progress-fill" style="width:0%"></div></div>
    <div id="diag3Intro" style="text-align:center;padding:10px 0 16px;">
      <button class="diag3-btn" id="diag3Start">診断を開始する →</button>
    </div>
    <div id="diag3Questions" style="display:none;">
      <div class="diag3-q" data-q="1"><div class="diag3-q-title"><span class="diag3-qnum">Q1</span>ファイルの拡張子は？</div><div class="diag3-options"><label class="diag3-option"><input type="radio" name="d3q1" value="ex4"> .ex4ファイル</label><label class="diag3-option"><input type="radio" name="d3q1" value="mq4"> .mq4ファイル（ソースコード）</label><label class="diag3-option"><input type="radio" name="d3q1" value="other"> その他</label></div></div>
      <div class="diag3-q hidden" data-q="2"><div class="diag3-q-title"><span class="diag3-qnum">Q2</span>特定の口座でしか動作しませんか？</div><div class="diag3-options"><label class="diag3-option"><input type="radio" name="d3q2" value="yes"> はい、特定の口座のみ</label><label class="diag3-option"><input type="radio" name="d3q2" value="no"> いいえ、どの口座でも動く</label><label class="diag3-option"><input type="radio" name="d3q2" value="unknown"> わかりません</label></div></div>
      <div class="diag3-q hidden" data-q="3"><div class="diag3-q-title"><span class="diag3-qnum">Q3</span>起動時にエラーが表示されますか？</div><div class="diag3-options"><label class="diag3-option"><input type="radio" name="d3q3" value="account"> 口座番号に関するエラー</label><label class="diag3-option"><input type="radio" name="d3q3" value="other"> 別のエラー</label><label class="diag3-option"><input type="radio" name="d3q3" value="none"> エラーなし</label></div></div>
      <div class="diag3-q hidden" data-q="4"><div class="diag3-q-title"><span class="diag3-qnum">Q4</span>外部DLLファイルを使用していますか？</div><div class="diag3-options"><label class="diag3-option"><input type="radio" name="d3q4" value="yes"> はい</label><label class="diag3-option"><input type="radio" name="d3q4" value="no"> いいえ</label><label class="diag3-option"><input type="radio" name="d3q4" value="unknown"> わかりません</label></div></div>
      <div class="diag3-q hidden" data-q="5"><div class="diag3-q-title"><span class="diag3-qnum">Q5</span>外部サーバーでライセンス認証を行いますか？</div><div class="diag3-options"><label class="diag3-option"><input type="radio" name="d3q5" value="yes"> はい</label><label class="diag3-option"><input type="radio" name="d3q5" value="no"> いいえ</label><label class="diag3-option"><input type="radio" name="d3q5" value="unknown"> わかりません</label></div></div>
      <div style="text-align:center;margin-top:12px;"><button class="diag3-btn" id="diag3Next" disabled>次へ</button></div>
    </div>
    <div class="diag3-result hidden" id="diag3Result">
      <div class="diag3-badge" id="diag3Badge"></div>
      <div class="diag3-result-title" id="diag3Title"></div>
      <div class="diag3-result-msg" id="diag3Msg"></div>
      <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="diag3-cta-btn">無料で相談する →</a>
    </div>
  </div>
  <script>
  (function(){
    var cur=0,total=5,ans={};
    var s=document.getElementById('diag3Start'),n=document.getElementById('diag3Next');
    var intro=document.getElementById('diag3Intro'),qs=document.getElementById('diag3Questions');
    var res=document.getElementById('diag3Result'),fill=document.getElementById('diag3Fill'),prog=document.getElementById('diag3Progress');
    s.addEventListener('click',function(){intro.style.display='none';qs.style.display='block';prog.style.display='block';cur=1;showQ(1);});
    document.getElementById('diag3Form').addEventListener('change',function(e){if(e.target.type==='radio'){ans[e.target.name]=e.target.value;n.disabled=false;if(cur===total)n.textContent='結果を見る';}});
    n.addEventListener('click',function(){var b=document.querySelector('#diag3Questions [data-q="'+cur+'"]');if(!b)return;b.classList.add('hidden');cur++;fill.style.width=(cur/total*100)+'%';if(cur<=total){showQ(cur);n.disabled=true;n.textContent=cur===total?'結果を見る':'次へ';}else{qs.style.display='none';prog.style.display='none';showResult();}});
    function showQ(i){var b=document.querySelector('#diag3Questions [data-q="'+i+'"]');if(b)b.classList.remove('hidden');}
    function showResult(){res.classList.remove('hidden');var sc=0;if(ans.d3q1==='mq4'){set('easy','すでにソースコードです','mq4ファイルはそのまま編集可能です。口座縛り解除も容易に対応できます。');return;}if(ans.d3q1==='other'){set('medium','ファイル形式の確認が必要です','ex4以外のファイルは対象外になる場合があります。まずはお問い合わせください。');return;}if(ans.d3q3==='other')sc+=2;if(ans.d3q4==='yes')sc+=3;if(ans.d3q4==='unknown')sc+=1;if(ans.d3q5==='yes')sc+=3;if(ans.d3q5==='unknown')sc+=1;if(sc===0)set('easy','デコンパイル可能性：高','標準的な口座縛りのケースです。比較的スムーズに解除できる可能性が高いです。');else if(sc<=2)set('medium','デコンパイル可能性：中〜高','やや複雑な保護が施されている可能性がありますが、多くの場合対応可能です。');else if(sc<=4)set('medium','高度な解析で対応可能','専門的な技術で対応できるケースが多くあります。');else set('hard','詳細診断が必要です','実際のファイルを解析して対応可否を判断します。');}
    function set(lv,title,msg){var b=document.getElementById('diag3Badge');b.className='diag3-badge '+lv;b.textContent={easy:'対応可能性：高',medium:'要詳細確認',hard:'要詳細診断'}[lv];document.getElementById('diag3Title').textContent=title;document.getElementById('diag3Msg').textContent=msg;}
  })();
  </script>
</div>

<div style="text-align:center; margin: 32px 0;">
  <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" style="display:inline-block; background:#e8622a; color:#fff; padding:16px 48px; border-radius:50px; font-weight:700; font-size:16px; text-decoration:none;">無料でお見積もり →</a>
  <p style="color:#888; font-size:12px; margin-top:10px;">ファイルを送るだけ。最短1日で納品</p>
</div>

</div>

<p>投稿 <a href="https://mt4decompile.com/ea-decompile-detected/">EAデコンパイル解除はバレる？依頼前に知っておくべき点</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ghidraを使ったEX4解析の実態と、最終的に残る技術的な課題について</title>
		<link>https://mt4decompile.com/ex4-decompile-ghidra/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 04:27:11 +0000</pubDate>
				<category><![CDATA[解析]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=700</guid>

					<description><![CDATA[<p>ex4ファイルをGhidraで開いてみようと思った時点で、あなたはもう初心者ではない。 一般的なデコンパイルツールは試した。コードらしきものも見た。でも、そこから先に進めなかった。だから、Ghidraに辿り着いた。 私は...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-ghidra/">Ghidraを使ったEX4解析の実態と、最終的に残る技術的な課題について</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ex4ファイルをGhidraで開いてみようと思った時点で、あなたはもう初心者ではない。</p>



<p class="wp-block-paragraph">一般的なデコンパイルツールは試した。コードらしきものも見た。でも、そこから先に進めなかった。だから、Ghidraに辿り着いた。</p>



<p class="wp-block-paragraph">私はEX4デコンパイルを専門に扱うエンジニアとして、「Ghidraを使ってみたけど、結局どうすればいいのか分からない」という相談を何度も受けてきた。</p>



<p class="wp-block-paragraph">結論から言うと、<strong>Ghidraは確かに強力だが、それでもex4解析には固有の壁がある</strong>。そして、それは技術力の問題ではない。構造上の問題だ。</p>



<div style="text-align:center; margin: 32px 0;">
  <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" style="display:inline-block; background:#e8622a; color:#fff; padding:14px 44px; border-radius:50px; font-weight:700; font-size:15px; text-decoration:none;">無料でお見積もり →</a>
  <p style="color:#888; font-size:12px; margin-top:10px;">最短1日で納品可能・実績5,000件以上</p>
</div>



<h2 class="wp-block-heading">Ghidraでex4を開こうとしたときに起きること</h2>



<p class="wp-block-paragraph"><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a>は汎用的なリバースエンジニアリングツールだ。ELF、PE、Mach-O…さまざまなバイナリ形式に対応している。だが、MT4のex4は、その「さまざま」の中に含まれていない。</p>



<h3 class="wp-block-heading">ex4は独自フォーマット</h3>



<p class="wp-block-paragraph">ex4ファイルは、MetaQuotes社が独自に設計したバイトコード形式で構成されている。標準的なバイナリとは構造が違う。命令セットも異なる。セクション分割の概念も独自だ。</p>



<p class="wp-block-paragraph">Ghidraにex4をそのまま放り込んでも、「Unknown Format」と言われるか、誤った形式として読み込まれるだけだ。</p>



<h3 class="wp-block-heading">カスタムローダーが必要になる</h3>



<p class="wp-block-paragraph">Ghidraでex4を解析するには、<strong>カスタムローダー</strong>を用意する必要がある。ex4のヘッダ構造を解釈し、バイトコードをGhidraが理解できる形に変換するスクリプトだ。</p>



<p class="wp-block-paragraph">問題は、このローダーを書くには<strong>ex4の内部仕様を理解している必要がある</strong>ということ。公式には公開されていない情報を、逆算して組み立てることになる。</p>



<h2 class="wp-block-heading">ローダーを用意しても、次の壁がある</h2>



<p class="wp-block-paragraph">仮にカスタムローダーを用意できたとする。Ghidraにex4が読み込まれた。逆アセンブル結果が表示された。ここで、次の現実が待っている。</p>



<h3 class="wp-block-heading">シンボル情報は失われている</h3>



<p class="wp-block-paragraph">元のソースコードにあった変数名、関数名、コメント、引数の意味——これらはコンパイル時に消えている。残っているのはメモリアドレス、命令列、制御フローだけだ。</p>



<p class="wp-block-paragraph">だからGhidraの画面には、<code>FUN_00401234</code>とか<code>DAT_00405abc</code>とか、そんな無機質な名前ばかりが並ぶ。</p>



<h3 class="wp-block-heading">逆コンパイル結果は「推測の塊」</h3>



<p class="wp-block-paragraph">Ghidraには逆コンパイル機能がある。アセンブリコードをC言語風の擬似コードに変換してくれる。でも実際に見ると分かるんだけど、元のコードとは全然違う姿になってる。</p>



<p class="wp-block-paragraph">たとえば、元のMQL4コードが、</p>



<pre class="wp-block-code"><code>if (OrdersTotal() > 0) {
    CloseAllOrders();
}</code></pre>



<p class="wp-block-paragraph">こんな感じだったとする。でもGhidraで逆コンパイルすると、</p>



<pre class="wp-block-code"><code>if (iVar1 > 0) {
    FUN_00401678();
}</code></pre>



<p class="wp-block-paragraph">こうなる。意味は何となく推測できる。でも<code>iVar1</code>が何なのか、<code>FUN_00401678()</code>が何をしてるのかは<strong>文脈から推測するしかない</strong>。元のロジックを正確に再現できるわけではない。</p>



<h2 class="wp-block-heading">MT4特有の構造が、話をさらにややこしくする</h2>



<h3 class="wp-block-heading">外部関数呼び出しが「見えない」</h3>



<p class="wp-block-paragraph">MT4では、<code>OrderSend()</code>や<code>iMA()</code>や<code>AccountBalance()</code>みたいな関数はすべてMT4ランタイムが提供する外部関数だ。ex4の中には<strong>呼び出し部分しか記録されていない</strong>。</p>



<p class="wp-block-paragraph">どの関数を呼んでいるのか、引数が何を意味しているのかを推測するには、MT4の内部仕様を知っている必要がある。しかもこの仕様、公式には公開されてない。</p>



<h3 class="wp-block-heading">インジケーター呼び出しも同じ</h3>



<p class="wp-block-paragraph">カスタムインジケーターを使っている場合、そのロジックはex4の中には含まれていない。別のex4ファイルとして存在している。つまり、<strong>一つのEAを理解するために、複数のファイルを解析する必要がある</strong>。</p>



<h2 class="wp-block-heading">難読化が入ると、もう別次元になる</h2>



<p class="wp-block-paragraph">最近のEAには難読化処理が施されていることが多い。無意味な分岐を大量に挿入する制御フロー難読化、定数や文字列を暗号化するデータ難読化、デバッガの存在を検知して動作を変えるアンチデバッグ——こうなると、もう静的解析だけでは限界だ。</p>



<h2 class="wp-block-heading">Ghidraでできることと、できないこと</h2>



<p class="wp-block-paragraph">Ghidraでできるのは、構造を把握する、制御フローを可視化する、処理の大まかな流れを理解する——「このEAがどういう設計思想で作られているか」という<strong>全体像を掴む</strong>ことだ。</p>



<p class="wp-block-paragraph">一方でできないのは、元のソースコードを完全に復元する、難読化を自動で解除する、口座縛りやブローカー制御を取り除く——これらはGhidraだけでは無理だ。<strong>解析はできても、解除や再構築はできない</strong>。</p>



<div style="margin: 32px 0; padding: 24px 28px; background: #1a1a1a; border: 1px solid #333; border-left: 4px solid #e8622a; border-radius: 6px;">
  <p style="color: #fff; font-size: 15px; font-weight: 700; margin: 0 0 8px 0;">Ghidraで壁にぶつかった方へ</p>
  <p style="color: #aaa; font-size: 13px; margin: 0 0 16px 0; line-height: 1.7;">解析まではできた。でも解除できない——その状態なら、あとはex4ファイルを送るだけです。</p>
  <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" style="display:inline-block; background:#e8622a; color:#fff; padding:12px 32px; border-radius:4px; font-weight:700; font-size:14px; text-decoration:none;">ファイルを送って相談する →</a>
</div>



<h2 class="wp-block-heading">結局、Ghidraの先に何があるのか</h2>



<p class="wp-block-paragraph">Ghidraを使い切った後に残る道は多くない。</p>



<p class="wp-block-paragraph">学習として割り切る——「構造が理解できた」「設計思想が掴めた」それで十分という選択。自分で一からEAを書き直すなら、得られた知見は価値がある。</p>



<p class="wp-block-paragraph">完全に諦める——「ここまでやっても無理だった」その判断も正しい。時間とスキルを天秤にかけて引き返すのは健全な選択だ。</p>



<p class="wp-block-paragraph">再構築前提で切り替える——口座縛りを解除したい、自分の環境で動かしたい、元の挙動を維持したいという目的なら、<strong>解析ではなく再構築</strong>が必要になる。これが最終的な到達点になることが多い。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ea-decompile-detected">EAデコンパイル解除はバレる？依頼前に知っておくべき点</a><br>・<a href="https://mt4decompile.com/ea-decompile-illegal/">EAデコンパイル解除は違法か？依頼前に整理しておく考え方</a></p>



<h2 class="wp-block-heading">まとめ｜Ghidraの先にあるもの</h2>



<p class="wp-block-paragraph">Ghidraを使ったex4解析は、技術的には可能だが、完全な復元には至らない。それは失敗ではない。遠回りでもない。現実的な到達点だ。</p>



<p class="wp-block-paragraph">だからこそ、解析を学習で終えるか、再構築へ進むか——この判断だけが残る。</p>



<p class="wp-block-paragraph">ここまで調べ尽くした人なら、もう答えは出ているはずだ。<strong>次の一手はファイルを送るだけでいい。</strong></p>



<div style="margin: 40px 0;">

<div style="background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 28px; margin-bottom: 24px;">
  <p style="color: #fff; font-size: 16px; font-weight: 700; margin: 0 0 6px 0;">まずはデコンパイル可能か診断する</p>
  <p style="color: #888; font-size: 13px; margin: 0 0 16px 0;">5つの質問・約1分で判定します</p>
  <style>
    .diag5-q{background:#242424;border:1px solid #333;border-left:3px solid #e8622a;border-radius:6px;padding:14px;margin-bottom:10px}.diag5-q.hidden{display:none}.diag5-q-title{color:#e0e0e0;font-size:13px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}.diag5-qnum{background:#e8622a;color:#fff;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.diag5-options{display:flex;flex-direction:column;gap:6px}.diag5-option{display:flex;align-items:center;padding:8px 12px;background:#1a1a1a;border:1px solid #333;border-radius:4px;cursor:pointer;font-size:13px;color:#ccc;transition:all .2s}.diag5-option:hover{border-color:#e8622a;color:#fff}.diag5-option input{margin-right:8px;accent-color:#e8622a}.diag5-progress{width:100%;height:3px;background:#333;border-radius:2px;margin-bottom:14px}.diag5-progress-fill{height:100%;background:#e8622a;transition:width .3s;border-radius:2px}.diag5-btn{background:#e8622a;color:#fff;border:none;padding:10px 28px;font-size:13px;font-weight:700;border-radius:4px;cursor:pointer;transition:background .2s}.diag5-btn:hover{background:#d05520}.diag5-btn:disabled{background:#444;color:#777;cursor:not-allowed}.diag5-result{background:#242424;border:1px solid #333;border-radius:6px;padding:20px;text-align:center}.diag5-result.hidden{display:none}.diag5-badge{display:inline-block;padding:4px 14px;border-radius:20px;font-size:11px;font-weight:700;margin-bottom:10px;letter-spacing:.5px}.diag5-badge.easy{background:#2e7d32;color:#fff}.diag5-badge.medium{background:#e65100;color:#fff}.diag5-badge.hard{background:#b71c1c;color:#fff}.diag5-result-title{color:#fff;font-size:17px;font-weight:700;margin-bottom:8px}.diag5-result-msg{color:#aaa;font-size:13px;line-height:1.7;margin-bottom:16px}.diag5-cta-btn{display:inline-block;background:#e8622a;color:#fff;padding:12px 32px;border-radius:4px;font-weight:700;font-size:14px;text-decoration:none}.diag5-cta-btn:hover{background:#d05520}
  </style>
  <div id="diag5Form">
    <div id="diag5Progress" class="diag5-progress" style="display:none;"><div id="diag5Fill" class="diag5-progress-fill" style="width:0%"></div></div>
    <div id="diag5Intro" style="text-align:center;padding:10px 0 16px;">
      <button class="diag5-btn" id="diag5Start">診断を開始する →</button>
    </div>
    <div id="diag5Questions" style="display:none;">
      <div class="diag5-q" data-q="1"><div class="diag5-q-title"><span class="diag5-qnum">Q1</span>ファイルの拡張子は？</div><div class="diag5-options"><label class="diag5-option"><input type="radio" name="d5q1" value="ex4"> .ex4ファイル</label><label class="diag5-option"><input type="radio" name="d5q1" value="mq4"> .mq4ファイル（ソースコード）</label><label class="diag5-option"><input type="radio" name="d5q1" value="other"> その他</label></div></div>
      <div class="diag5-q hidden" data-q="2"><div class="diag5-q-title"><span class="diag5-qnum">Q2</span>特定の口座でしか動作しませんか？</div><div class="diag5-options"><label class="diag5-option"><input type="radio" name="d5q2" value="yes"> はい、特定の口座のみ</label><label class="diag5-option"><input type="radio" name="d5q2" value="no"> いいえ、どの口座でも動く</label><label class="diag5-option"><input type="radio" name="d5q2" value="unknown"> わかりません</label></div></div>
      <div class="diag5-q hidden" data-q="3"><div class="diag5-q-title"><span class="diag5-qnum">Q3</span>起動時にエラーが表示されますか？</div><div class="diag5-options"><label class="diag5-option"><input type="radio" name="d5q3" value="account"> 口座番号に関するエラー</label><label class="diag5-option"><input type="radio" name="d5q3" value="other"> 別のエラー</label><label class="diag5-option"><input type="radio" name="d5q3" value="none"> エラーなし</label></div></div>
      <div class="diag5-q hidden" data-q="4"><div class="diag5-q-title"><span class="diag5-qnum">Q4</span>外部DLLファイルを使用していますか？</div><div class="diag5-options"><label class="diag5-option"><input type="radio" name="d5q4" value="yes"> はい</label><label class="diag5-option"><input type="radio" name="d5q4" value="no"> いいえ</label><label class="diag5-option"><input type="radio" name="d5q4" value="unknown"> わかりません</label></div></div>
      <div class="diag5-q hidden" data-q="5"><div class="diag5-q-title"><span class="diag5-qnum">Q5</span>外部サーバーでライセンス認証を行いますか？</div><div class="diag5-options"><label class="diag5-option"><input type="radio" name="d5q5" value="yes"> はい</label><label class="diag5-option"><input type="radio" name="d5q5" value="no"> いいえ</label><label class="diag5-option"><input type="radio" name="d5q5" value="unknown"> わかりません</label></div></div>
      <div style="text-align:center;margin-top:12px;"><button class="diag5-btn" id="diag5Next" disabled>次へ</button></div>
    </div>
    <div class="diag5-result hidden" id="diag5Result">
      <div class="diag5-badge" id="diag5Badge"></div>
      <div class="diag5-result-title" id="diag5Title"></div>
      <div class="diag5-result-msg" id="diag5Msg"></div>
      <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="diag5-cta-btn">ファイルを送って相談する →</a>
    </div>
  </div>
  <script>
  (function(){
    var cur=0,total=5,ans={};
    var s=document.getElementById('diag5Start'),n=document.getElementById('diag5Next');
    var intro=document.getElementById('diag5Intro'),qs=document.getElementById('diag5Questions');
    var res=document.getElementById('diag5Result'),fill=document.getElementById('diag5Fill'),prog=document.getElementById('diag5Progress');
    s.addEventListener('click',function(){intro.style.display='none';qs.style.display='block';prog.style.display='block';cur=1;showQ(1);});
    document.getElementById('diag5Form').addEventListener('change',function(e){if(e.target.type==='radio'){ans[e.target.name]=e.target.value;n.disabled=false;if(cur===total)n.textContent='結果を見る';}});
    n.addEventListener('click',function(){var b=document.querySelector('#diag5Questions [data-q="'+cur+'"]');if(!b)return;b.classList.add('hidden');cur++;fill.style.width=(cur/total*100)+'%';if(cur<=total){showQ(cur);n.disabled=true;n.textContent=cur===total?'結果を見る':'次へ';}else{qs.style.display='none';prog.style.display='none';showResult();}});
    function showQ(i){var b=document.querySelector('#diag5Questions [data-q="'+i+'"]');if(b)b.classList.remove('hidden');}
    function showResult(){res.classList.remove('hidden');var sc=0;if(ans.d5q1==='mq4'){set('easy','すでにソースコードです','mq4ファイルはそのまま編集可能です。口座縛り解除も容易に対応できます。');return;}if(ans.d5q1==='other'){set('medium','ファイル形式の確認が必要です','ex4以外のファイルは対象外になる場合があります。まずはお問い合わせください。');return;}if(ans.d5q3==='other')sc+=2;if(ans.d5q4==='yes')sc+=3;if(ans.d5q4==='unknown')sc+=1;if(ans.d5q5==='yes')sc+=3;if(ans.d5q5==='unknown')sc+=1;if(sc===0)set('easy','デコンパイル可能性：高','標準的な口座縛りのケースです。比較的スムーズに解除できる可能性が高いです。');else if(sc<=2)set('medium','デコンパイル可能性：中〜高','やや複雑な保護が施されている可能性がありますが、多くの場合対応可能です。');else if(sc<=4)set('medium','高度な解析で対応可能','専門的な技術で対応できるケースが多くあります。');else set('hard','詳細診断が必要です','実際のファイルを解析して対応可否を判断します。');}
    function set(lv,title,msg){var b=document.getElementById('diag5Badge');b.className='diag5-badge '+lv;b.textContent={easy:'対応可能性：高',medium:'要詳細確認',hard:'要詳細診断'}[lv];document.getElementById('diag5Title').textContent=title;document.getElementById('diag5Msg').textContent=msg;}
  })();
  </script>
</div>

<div style="text-align:center; margin: 32px 0;">
  <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" style="display:inline-block; background:#e8622a; color:#fff; padding:16px 48px; border-radius:50px; font-weight:700; font-size:16px; text-decoration:none;">ファイルを送って相談する →</a>
  <p style="color:#888; font-size:12px; margin-top:10px;">ファイルを送るだけ。最短1日で納品</p>
</div>

</div>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-ghidra/">Ghidraを使ったEX4解析の実態と、最終的に残る技術的な課題について</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EAデコンパイルツールを試した後に残る最終手段</title>
		<link>https://mt4decompile.com/ea-decompile-tool/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 04:12:31 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=697</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ea-decompile-tool/">EAデコンパイルツールを試した後に残る最終手段</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>ea デコンパイル ツール</strong><br>このキーワードで検索している人は、もう入口にはいない。</p>



<p class="wp-block-paragraph">EX4は手元にある。<br>デコンパイルツールも一通り試した。<br>コードらしきものも見た。</p>



<p class="wp-block-paragraph">それでも、<br>「先に進めない」<br>「解除や復元まで辿り着かない」<br>そんな状態にいるはずだ。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>EAデコンパイルツールを一通り試した後に行き詰まった、という相談を何度も受けてきた。</p>



<p class="wp-block-paragraph">結論から言うと、<br><strong>EAデコンパイルツールを試したあとに残る道は、実は多くない。</strong><br>そして、それは失敗でも敗北でもない。</p>



<p class="wp-block-paragraph">もし今、<br>「ここから何を選べばいいのか分からない」<br>そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">EAデコンパイルツールを使い切った状態とは</h2>



<p class="wp-block-paragraph">まず、状況を整理しておく。</p>



<p class="wp-block-paragraph">「ツールを試した」と言っても、<br>人によって差がある。</p>



<p class="wp-block-paragraph">この記事で想定しているのは、次の状態だ。</p>



<ul class="wp-block-list">
<li>一般的なEAデコンパイルツールを使用</li>



<li>コードの出力は確認できた</li>



<li>しかし解除や実用に至らない</li>
</ul>



<p class="wp-block-paragraph">ここまで来ているなら、<br><strong>できることはほぼやり切っている。</strong></p>



<h2 class="wp-block-heading">EAデコンパイルツールの役割と限界</h2>



<p class="wp-block-paragraph">EAデコンパイルツールの役割は明確だ。</p>



<p class="wp-block-paragraph">EX4という実行ファイルを解析し、<br>人が理解できる形に近づける。</p>



<p class="wp-block-paragraph">それ以上でも、それ以下でもない。</p>



<p class="wp-block-paragraph">つまり、</p>



<ul class="wp-block-list">
<li>構造を読む</li>



<li>処理の流れを掴む</li>



<li>設計の雰囲気を知る</li>
</ul>



<p class="wp-block-paragraph">ここまでがツールの仕事だ。</p>



<p class="wp-block-paragraph"><strong>解除・復元・再構築は、ツールの仕事ではない。</strong></p>



<h2 class="wp-block-heading">なぜツールの先に進めなくなるのか</h2>



<p class="wp-block-paragraph">多くの人が同じところで止まる。</p>



<p class="wp-block-paragraph">理由はシンプルだ。</p>



<h3 class="wp-block-heading">設計が「解除前提」ではない</h3>



<p class="wp-block-paragraph">最近のEAは、</p>



<ul class="wp-block-list">
<li>口座縛り</li>



<li>ブローカー制御</li>



<li>環境依存チェック</li>
</ul>



<p class="wp-block-paragraph">これらが<br>売買ロジックと一体化して設計されている。</p>



<p class="wp-block-paragraph">そのため、</p>



<p class="wp-block-paragraph">「制御だけ外す」<br>という操作が成立しない。</p>



<h3 class="wp-block-heading">コードが見えても意味が分からない</h3>



<p class="wp-block-paragraph">変数名は失われ、<br>コメントはなく、<br>文脈も消えている。</p>



<p class="wp-block-paragraph">読めるが、<br><strong>判断できないコード</strong>になる。</p>



<h3 class="wp-block-heading">修正＝再構築になる</h3>



<p class="wp-block-paragraph">少し手を入れた瞬間、<br>EAは別物になる。</p>



<p class="wp-block-paragraph">これは解除ではなく、<br>再設計だ。</p>



<h2 class="wp-block-heading">Ghidraを使っても残る現実</h2>



<p class="wp-block-paragraph">さらに踏み込む人は、<br><strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を使う。</p>



<p class="wp-block-paragraph">逆アセンブル。<br>制御フロー解析。<br>構造の可視化。</p>



<p class="wp-block-paragraph">かなり深いところまで見える。</p>



<p class="wp-block-paragraph">だが、それでも止まる。</p>



<p class="wp-block-paragraph">理由は変わらない。</p>



<ul class="wp-block-list">
<li>MT4特有の内部構造</li>



<li>EA固有の設計思想</li>



<li>再構築前提の作り</li>
</ul>



<p class="wp-block-paragraph">Ghidraは解析を助けるが、<br>解決を約束するものではない。</p>



<p class="wp-block-paragraph">Ghidraを試したあとに残る課題については、<br>こちらで詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ex4-decompile-ghidra/">GhidraでEX4デコンパイルを試した後に残る課題とは</a></p>



<h2 class="wp-block-heading">EAデコンパイルツールを試した後に残る選択肢</h2>



<p class="wp-block-paragraph">ここがこの記事の核心だ。</p>



<p class="wp-block-paragraph">ツールを使い切ったあと、<br>残る選択肢は大きく分けて3つしかない。</p>



<h3 class="wp-block-heading">選択肢① 学習として割り切る</h3>



<p class="wp-block-paragraph">構造を理解できた。<br>設計思想を感じ取れた。</p>



<p class="wp-block-paragraph">それで十分、という選択。</p>



<p class="wp-block-paragraph">時間をかけて<br>自分で一からEAを書き直すなら、意味はある。</p>



<h3 class="wp-block-heading">選択肢② 完全に諦める</h3>



<p class="wp-block-paragraph">実用目的ではない。<br>リスクを取りたくない。</p>



<p class="wp-block-paragraph">この判断も、正しい。</p>



<p class="wp-block-paragraph">無理に触らないのは、<br>技術的にも健全だ。</p>



<h3 class="wp-block-heading">選択肢③ 再構築前提で切り替える</h3>



<p class="wp-block-paragraph">口座縛りを解除したい。<br>自分の環境で動かしたい。<br>元の挙動を維持したい。</p>



<p class="wp-block-paragraph">この目的なら、<br><strong>解析ではなく再構築が必要になる。</strong></p>



<p class="wp-block-paragraph">ここが、<br>「最終手段」と呼ばれる理由だ。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">最終手段は「力技」ではない</h2>



<p class="wp-block-paragraph">誤解されやすいが、<br>最終手段＝無理やり、ではない。</p>



<p class="wp-block-paragraph">むしろ逆だ。</p>



<ul class="wp-block-list">
<li>構造を理解した上で</li>



<li>設計を読み替え</li>



<li>同じ挙動を再現する</li>
</ul>



<p class="wp-block-paragraph"><strong>一番丁寧で、再現性の高いやり方</strong>になる。</p>



<p class="wp-block-paragraph">ツールでどうにもならない理由を、<br>正面から受け入れる手段でもある。</p>



<h2 class="wp-block-heading">ツールに戻ることはほぼない</h2>



<p class="wp-block-paragraph">ここまで来た人が、<br>再びツール探しに戻ることはほとんどない。</p>



<p class="wp-block-paragraph">理由は明確だ。</p>



<ul class="wp-block-list">
<li>ツールの限界を理解した</li>



<li>EA設計の壁を見た</li>



<li>次に進むしかないと分かった</li>
</ul>



<p class="wp-block-paragraph">この状態になると、<br>選択は自然に決まる。</p>



<h2 class="wp-block-heading">まとめの前に整理しておくこと</h2>



<p class="wp-block-paragraph">EAデコンパイルツールは、</p>



<p class="wp-block-paragraph">入口としては優秀。<br>学習用途にも向いている。</p>



<p class="wp-block-paragraph">だが、</p>



<p class="wp-block-paragraph">実用・解除・再現<br>ここまでは届かないケースが多い。</p>



<p class="wp-block-paragraph">それを理解できた時点で、<br>もう十分に進んでいる。</p>



<h2 class="wp-block-heading">まとめ｜EAデコンパイルツールの先にあるもの</h2>



<p class="wp-block-paragraph"><strong>EAデコンパイルツールを試した後に残る最終手段は、再構築前提の切り替え。</strong></p>



<p class="wp-block-paragraph">それは、</p>



<p class="wp-block-paragraph">失敗ではない。<br>遠回りでもない。<br><strong>現実的な到達点</strong>だ。</p>



<p class="wp-block-paragraph">だからこそ、</p>



<p class="wp-block-paragraph">解析を学習で終えるか。<br>再構築へ進むか。</p>



<p class="wp-block-paragraph">この判断だけが残る。</p>



<p class="wp-block-paragraph">もし今、<br>「ここからどう進むべきか考えている」<br>そう感じているなら、<br>判断材料としてここを確認しておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<p class="wp-block-paragraph">静かに、<br>必要な人だけが次に進めばいい。</p>



<p class="wp-block-paragraph"></p>
<p>投稿 <a href="https://mt4decompile.com/ea-decompile-tool/">EAデコンパイルツールを試した後に残る最終手段</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EAデコンパイルソフトで対応できないEAの特徴</title>
		<link>https://mt4decompile.com/ea-decompile-software/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 04:08:19 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=695</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ea-decompile-software/">EAデコンパイルソフトで対応できないEAの特徴</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>ea デコンパイル ソフト</strong><br>このキーワードで検索している人は、かなり具体的な段階にいる。</p>



<p class="wp-block-paragraph">EAは手元にある。<br>デコンパイルソフトも見つけた。<br>実際に動かしてみた。</p>



<p class="wp-block-paragraph">それでも、<br>「思ったように解析できない」<br>「解除や復元までたどり着かない」<br>そんな感覚を持っているはずだ。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>EAデコンパイルソフトを試した結果、途中で止まってしまったという相談を何度も受けてきた。</p>



<p class="wp-block-paragraph">結論から言うと、<br><strong>EAデコンパイルソフトでは、構造的に対応できないEAが確実に存在する。</strong><br>それはソフトの性能不足ではなく、EA側の設計によるものだ。</p>



<p class="wp-block-paragraph">もし今、<br>「なぜ自分のEAだけうまくいかないのか」<br>そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">EAデコンパイルソフトは何をするためのものか</h2>



<p class="wp-block-paragraph">まず前提として、<br>EAデコンパイルソフトの役割を整理しておく。</p>



<p class="wp-block-paragraph">EAデコンパイルソフトは、<br>EX4という実行ファイルを解析し、<br>人が読める形のコード構造を表示するツールだ。</p>



<p class="wp-block-paragraph">重要なのは、<br><strong>復元ツールではない</strong>という点だ。</p>



<p class="wp-block-paragraph">できるのは、</p>



<ul class="wp-block-list">
<li>処理の流れを追う</li>



<li>条件分岐を可視化する</li>



<li>構造を把握する</li>
</ul>



<p class="wp-block-paragraph">ここまで。</p>



<p class="wp-block-paragraph">「元のEAを完全に再現する」<br>という用途は、最初から想定されていない。</p>



<h2 class="wp-block-heading">EAデコンパイルソフトで対応できないEAがある理由</h2>



<p class="wp-block-paragraph">EAデコンパイルソフトを使っても、<br>どうしても先に進めないEAがある。</p>



<p class="wp-block-paragraph">それは偶然ではない。</p>



<p class="wp-block-paragraph"><strong>EAの設計段階で、ソフト対応を前提としていない構造</strong><br>になっているからだ。</p>



<h2 class="wp-block-heading">EAデコンパイルソフトで対応できないEAの典型的な特徴</h2>



<p class="wp-block-paragraph">ここからが本題になる。</p>



<h3 class="wp-block-heading">特徴① 制御ロジックが売買ロジックに埋め込まれている</h3>



<p class="wp-block-paragraph">多くのEAでは、</p>



<p class="wp-block-paragraph">売買ロジック<br>制御ロジック</p>



<p class="wp-block-paragraph">が分離されていない。</p>



<p class="wp-block-paragraph">口座番号チェック。<br>ブローカー制限。<br>サーバー名判定。</p>



<p class="wp-block-paragraph">これらが<br>エントリー条件やロット計算に直接組み込まれていると、<br>「この部分を消せばいい」という話にならない。</p>



<p class="wp-block-paragraph">EAデコンパイルソフトでは、<br>この絡み合った構造をほどくことができない。</p>



<h3 class="wp-block-heading">特徴② 新しいMT4ビルドでコンパイルされている</h3>



<p class="wp-block-paragraph">EAは、<br>コンパイル時のMT4ビルドに強く依存する。</p>



<p class="wp-block-paragraph">比較的新しいビルドで作られたEX4は、</p>



<ul class="wp-block-list">
<li>解析途中で止まる</li>



<li>意味のないコードになる</li>



<li>出力が極端に欠落する</li>
</ul>



<p class="wp-block-paragraph">こうした現象が起きやすい。</p>



<p class="wp-block-paragraph">これはソフトの不具合ではない。</p>



<p class="wp-block-paragraph"><strong>ビルド非対応という構造的制限</strong>だ。</p>



<h3 class="wp-block-heading">特徴③ 変数名・文脈が完全に失われている</h3>



<p class="wp-block-paragraph">EAデコンパイルソフトが出力するコードは、</p>



<p class="wp-block-paragraph">var1<br>tmp_03<br>a7</p>



<p class="wp-block-paragraph">といった変数だらけになる。</p>



<p class="wp-block-paragraph">コメントはない。<br>設計意図も分からない。</p>



<p class="wp-block-paragraph">読めるが、<br><strong>何をしているコードなのか判断できない</strong>。</p>



<p class="wp-block-paragraph">この状態では、<br>解除すべき箇所を安全に特定できない。</p>



<h3 class="wp-block-heading">特徴④ 外部要素に強く依存している</h3>



<p class="wp-block-paragraph">DLL呼び出し。<br>外部ファイル。<br>サーバー通信。</p>



<p class="wp-block-paragraph">こうした外部依存があるEAは、<br>EAデコンパイルソフトでは再現できない。</p>



<p class="wp-block-paragraph">構造の一部が欠けたままになるため、<br>「解析できたように見えて、動かないEA」になる。</p>



<h2 class="wp-block-heading">「解析できた」と「対応できた」は違う</h2>



<p class="wp-block-paragraph">多くの人がここで混同する。</p>



<p class="wp-block-paragraph">コードが表示された。<br>だから、対応できた。</p>



<p class="wp-block-paragraph">実際は違う。</p>



<p class="wp-block-paragraph">重要なのは、</p>



<ul class="wp-block-list">
<li>コンパイルできるか</li>



<li>元と同じ挙動か</li>



<li>実用に耐えるか</li>
</ul>



<p class="wp-block-paragraph">EAデコンパイルソフトは、<br><strong>解析補助には使えても、対応を保証するものではない。</strong></p>



<h2 class="wp-block-heading">Ghidraを使っても残る課題</h2>



<p class="wp-block-paragraph">さらに踏み込む人は、<br><strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を使う。</p>



<p class="wp-block-paragraph">逆アセンブル。<br>制御フロー解析。<br>かなり深いところまで見える。</p>



<p class="wp-block-paragraph">だが、それでも対応できないEAはある。</p>



<p class="wp-block-paragraph">理由は同じだ。</p>



<ul class="wp-block-list">
<li>MT4特有の構造</li>



<li>EA固有の設計</li>



<li>再構築前提のロジック</li>
</ul>



<p class="wp-block-paragraph">Ghidraは解析を助けるが、<br>対応や解除を保証するツールではない。</p>



<p class="wp-block-paragraph">Ghidraを試した後に残る課題については、<br>こちらで詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ex4-decompile-ghidra/">GhidraでEX4デコンパイルを試した後に残る課題とは</a></p>



<h2 class="wp-block-heading">EAデコンパイルソフトで止まった＝失敗ではない</h2>



<p class="wp-block-paragraph">EAデコンパイルソフトで止まったとき、<br>「自分のスキルが足りない」と感じる人は多い。</p>



<p class="wp-block-paragraph">だが実際は、<br><strong>EA側の設計で限界が決まっている</strong>ケースがほとんどだ。</p>



<p class="wp-block-paragraph">ソフトで対応できないのは、<br>珍しいことではない。</p>



<h2 class="wp-block-heading">切り替えるべき判断点</h2>



<p class="wp-block-paragraph">ここが重要だ。</p>



<p class="wp-block-paragraph">EAデコンパイルソフトで止まったあと、<br>次にどうするか。</p>



<h3 class="wp-block-heading">学習・研究目的なら続ける価値がある</h3>



<p class="wp-block-paragraph">構造を理解したい。<br>設計を学びたい。</p>



<p class="wp-block-paragraph">この場合、<br>解析だけでも十分に意味がある。</p>



<h3 class="wp-block-heading">実用目的なら切り替え時</h3>



<p class="wp-block-paragraph">口座縛りを解除したい。<br>自分の口座で動かしたい。<br>元の挙動を維持したい。</p>



<p class="wp-block-paragraph">この目的なら、<br><strong>対応できないと分かった時点が切り替えの判断点</strong>になる。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">EAデコンパイルソフトに期待しすぎない</h2>



<p class="wp-block-paragraph">よくある誤解がある。</p>



<p class="wp-block-paragraph">「もっと高性能なソフトなら何とかなる」<br>「別のツールを使えば対応できる」</p>



<p class="wp-block-paragraph">だが、<br><strong>ツールの差よりも、EA設計の差の方が大きい。</strong></p>



<p class="wp-block-paragraph">EAデコンパイルソフトは、</p>



<ul class="wp-block-list">
<li>入口として有効</li>



<li>限界も明確</li>
</ul>



<p class="wp-block-paragraph">この位置づけが一番現実的だ。</p>



<h2 class="wp-block-heading">まとめの前に整理しておくこと</h2>



<p class="wp-block-paragraph">EAデコンパイルソフトで対応できないEAには、</p>



<ul class="wp-block-list">
<li>制御の埋め込み</li>



<li>新しいビルド</li>



<li>文脈の喪失</li>



<li>外部依存</li>
</ul>



<p class="wp-block-paragraph">こうした特徴が重なっていることが多い。</p>



<h2 class="wp-block-heading">まとめ｜EAデコンパイルソフトの限界を知る</h2>



<p class="wp-block-paragraph"><strong>EAデコンパイルソフトで対応できないEAは、確実に存在する。</strong></p>



<p class="wp-block-paragraph">それは、</p>



<p class="wp-block-paragraph">ソフトの選択ミスではない。<br>使い方の問題でもない。<br><strong>EA設計の問題</strong>だ。</p>



<p class="wp-block-paragraph">だからこそ、</p>



<p class="wp-block-paragraph">解析を続けるか。<br>実用前提で切り替えるか。</p>



<p class="wp-block-paragraph">この判断が、<br>次の一手になる。</p>



<p class="wp-block-paragraph">もし今、<br>「なぜ対応できないのかを知りたかった」<br>そう感じているなら、<br>判断材料としてここを確認しておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<p class="wp-block-paragraph">静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ea-decompile-software/">EAデコンパイルソフトで対応できないEAの特徴</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ex4 to mq4 decompiler 5.0 1 exeで復元できないEAの特徴</title>
		<link>https://mt4decompile.com/ex4-to-mq4-decompiler-501/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 03:57:21 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=693</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-to-mq4-decompiler-501/">ex4 to mq4 decompiler 5.0 1 exeで復元できないEAの特徴</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>ex4 to mq4 decompiler 5.0 1 exe</strong><br>このキーワードで検索している人は、かなり具体的なところまで来ている。</p>



<p class="wp-block-paragraph">すでにツールは知っている。<br>実際にexeも動かした。<br>コードらしきものも、もしかすると表示された。</p>



<p class="wp-block-paragraph">それでも、<br>「復元できない」<br>「使える形にならない」<br>そこで止まっている。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>ex4-to-mq4-decompiler-5.0.1.exeを試した後に詰まった、という相談を何度も受けてきた。</p>



<p class="wp-block-paragraph">結論から言うと、<br><strong>このツールで復元できないEAには、かなりはっきりした特徴がある。</strong><br>そして、それはツールの使い方の問題ではない。</p>



<p class="wp-block-paragraph">もし今、<br>「なぜ自分のEAだけ復元できないのか」<br>そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">ex4 to mq4 decompiler 5.0 1 exeとは何ができるツールか</h2>



<p class="wp-block-paragraph">まず前提として、このツールの立ち位置を整理しておく。</p>



<p class="wp-block-paragraph"><a href="https://hybrid-analysis.com/sample/0b4dd2da67ffdbde92f49b306e5da293d22f5b537284256a838cf1ba5b3521b3/5bc23f147ca3e10a2d6b16b5">ex4 to mq4 decompiler 5.0 1 exe</a>は、<br>EX4ファイルを解析し、<br>mq4に近い構造のコードを出力するタイプのデコンパイラだ。</p>



<p class="wp-block-paragraph">比較的有名で、<br>検索すると名前を見かけることも多い。</p>



<p class="wp-block-paragraph">一部のEAでは、</p>



<ul class="wp-block-list">
<li>if文が展開される</li>



<li>関数構造が表示される</li>



<li>処理の流れが追える</li>
</ul>



<p class="wp-block-paragraph">ここまではできる。</p>



<p class="wp-block-paragraph">だが、<br><strong>「復元できる」と「解析できる」は同じではない。</strong></p>



<h2 class="wp-block-heading">復元できないEAが存在する理由</h2>



<p class="wp-block-paragraph">ex4-to-mq4-decompiler-5.0.1.exeを使っても、<br>どうしても復元できないEAがある。</p>



<p class="wp-block-paragraph">それは偶然ではない。</p>



<p class="wp-block-paragraph">EAの設計段階で、<br>すでに「復元しづらい構造」になっているからだ。</p>



<h2 class="wp-block-heading">復元できないEAの典型的な特徴</h2>



<p class="wp-block-paragraph">ここからが本題になる。</p>



<h3 class="wp-block-heading">特徴① 新しいMT4ビルドでコンパイルされている</h3>



<p class="wp-block-paragraph">このツールは、<br>対応できるMT4ビルドに限界がある。</p>



<p class="wp-block-paragraph">比較的新しいビルドで作られたEX4は、</p>



<ul class="wp-block-list">
<li>解析が途中で止まる</li>



<li>何も出力されない</li>



<li>意味のないコードになる</li>
</ul>



<p class="wp-block-paragraph">こうした結果になりやすい。</p>



<p class="wp-block-paragraph">これは、<br>exeの不具合ではなく、<br><strong>ビルド非対応</strong>によるものだ。</p>



<h3 class="wp-block-heading">特徴② 制御ロジックが深く埋め込まれている</h3>



<p class="wp-block-paragraph">口座縛り。<br>ブローカー判定。<br>サーバー名チェック。</p>



<p class="wp-block-paragraph">これらの制御が、</p>



<p class="wp-block-paragraph">売買条件の中<br>エントリー条件の分岐<br>ロット計算ロジック</p>



<p class="wp-block-paragraph">こうした部分に混ざっているEAは、<br>復元が非常に難しい。</p>



<p class="wp-block-paragraph">コードは出る。<br>だが、<br>どこをどう直せばいいのか分からない。</p>



<h3 class="wp-block-heading">特徴③ 変数名・文脈が完全に失われている</h3>



<p class="wp-block-paragraph">出力されたコードを見ると、</p>



<p class="wp-block-paragraph">a1<br>b2<br>tmp_07</p>



<p class="wp-block-paragraph">このような変数が並ぶ。</p>



<p class="wp-block-paragraph">コメントもない。<br>処理の意図も読み取れない。</p>



<p class="wp-block-paragraph"><strong>読めるが、理解できない。</strong></p>



<p class="wp-block-paragraph">この状態では、<br>復元というより「推測作業」になる。</p>



<h3 class="wp-block-heading">特徴④ 外部要素に依存している</h3>



<p class="wp-block-paragraph">DLL呼び出し。<br>外部ファイル。<br>サーバー通信。</p>



<p class="wp-block-paragraph">こうした要素を含むEAは、<br>ex4-to-mq4-decompiler-5.0.1.exeでは再現できない。</p>



<p class="wp-block-paragraph">構造の一部が欠けた状態になるため、<br>動くEAにはならない。</p>



<h2 class="wp-block-heading">「コードが出た＝復元できた」ではない</h2>



<p class="wp-block-paragraph">ここで、多くの人が勘違いする。</p>



<p class="wp-block-paragraph">コードが表示された。<br>だから、復元できた。</p>



<p class="wp-block-paragraph">実際は違う。</p>



<p class="wp-block-paragraph">重要なのは、</p>



<ul class="wp-block-list">
<li>コンパイルできるか</li>



<li>元と同じ挙動か</li>



<li>実戦で使えるか</li>
</ul>



<p class="wp-block-paragraph">この3点だ。</p>



<p class="wp-block-paragraph">ex4-to-mq4-decompiler-5.0.1.exeは、<br><strong>解析補助としては有効だが、復元を保証するツールではない。</strong></p>



<h2 class="wp-block-heading">Ghidraを併用しても残る壁</h2>



<p class="wp-block-paragraph">さらに一歩踏み込む人は、<br><strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を使う。</p>



<p class="wp-block-paragraph">逆アセンブル。<br>フロー解析。<br>かなり深いところまで見える。</p>



<p class="wp-block-paragraph">それでも、<br>復元できないEAは復元できない。</p>



<p class="wp-block-paragraph">理由は変わらない。</p>



<ul class="wp-block-list">
<li>MT4特有の内部構造</li>



<li>EA固有の設計思想</li>



<li>再構築前提の作り</li>
</ul>



<p class="wp-block-paragraph">Ghidraは解析を助けるが、<br>復元を約束するものではない。</p>



<p class="wp-block-paragraph">Ghidraを使ったあとに残る課題については、<br>こちらの記事で詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ex4-decompile-ghidra/">GhidraでEX4デコンパイルを試した後に残る課題とは</a></p>



<h2 class="wp-block-heading">このツールで復元できない＝失敗ではない</h2>



<p class="wp-block-paragraph">ex4-to-mq4-decompiler-5.0.1.exeで<br>復元できなかったとき、</p>



<p class="wp-block-paragraph">「自分のやり方が悪い」<br>そう思う人は多い。</p>



<p class="wp-block-paragraph">だが実際は、<br><strong>EA側の設計で最初から難易度が決まっている。</strong></p>



<p class="wp-block-paragraph">このツールで止まるのは、<br>能力不足ではない。</p>



<h2 class="wp-block-heading">切り替えるべき判断点</h2>



<p class="wp-block-paragraph">ここが重要だ。</p>



<p class="wp-block-paragraph">復元できないと分かったあと、<br>次にどうするか。</p>



<h3 class="wp-block-heading">学習・解析目的なら続ける価値がある</h3>



<p class="wp-block-paragraph">構造を理解したい。<br>EA設計を学びたい。</p>



<p class="wp-block-paragraph">この場合、<br>出力されたコードを読むだけでも意味はある。</p>



<h3 class="wp-block-heading">実用目的なら切り替え時</h3>



<p class="wp-block-paragraph">口座縛りを解除したい。<br>自分の口座で動かしたい。<br>元の挙動を維持したい。</p>



<p class="wp-block-paragraph">この目的なら、<br><strong>復元できないと分かった時点が切り替えの判断点</strong>になる。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">ex4 to mq4 decompiler 5.0 1 exeに期待しすぎない</h2>



<p class="wp-block-paragraph">よくある誤解がある。</p>



<p class="wp-block-paragraph">「このツールなら何とかなる」<br>「もっと使い込めば復元できる」</p>



<p class="wp-block-paragraph">だが、<br><strong>ツールの性能以上に、EAの設計が影響する。</strong></p>



<p class="wp-block-paragraph">このツールは、</p>



<ul class="wp-block-list">
<li>入口としては優秀</li>



<li>限界もはっきりしている</li>
</ul>



<p class="wp-block-paragraph">そういう位置づけだ。</p>



<h2 class="wp-block-heading">まとめの前に整理しておくこと</h2>



<p class="wp-block-paragraph">ex4-to-mq4-decompiler-5.0.1.exeで<br>復元できないEAには、</p>



<ul class="wp-block-list">
<li>新しいビルド</li>



<li>制御の埋め込み</li>



<li>文脈喪失</li>



<li>外部依存</li>
</ul>



<p class="wp-block-paragraph">こうした特徴が重なっていることが多い。</p>



<h2 class="wp-block-heading">まとめ｜復元できないEAには理由がある</h2>



<p class="wp-block-paragraph"><strong>ex4-to-mq4-decompiler-5.0.1.exeで復元できないEAは、珍しくない。</strong></p>



<p class="wp-block-paragraph">それは、</p>



<p class="wp-block-paragraph">ツール選びの失敗ではない。<br>使い方の問題でもない。<br><strong>EA設計の問題</strong>だ。</p>



<p class="wp-block-paragraph">だからこそ、</p>



<p class="wp-block-paragraph">解析を続けるか。<br>実用前提で切り替えるか。</p>



<p class="wp-block-paragraph">その判断が、<br>次の一手になる。</p>



<p class="wp-block-paragraph">もし今、<br>「復元できない理由を知りたかった」<br>そう感じているなら、<br>判断材料としてここを確認しておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<p class="wp-block-paragraph">静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-to-mq4-decompiler-501/">ex4 to mq4 decompiler 5.0 1 exeで復元できないEAの特徴</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ex4 to mq4 decompilerの使い方と、解除依頼に切り替える判断点</title>
		<link>https://mt4decompile.com/ex4-to-mq4-decompiler-usage/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 03:49:17 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=689</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-to-mq4-decompiler-usage/">ex4 to mq4 decompilerの使い方と、解除依頼に切り替える判断点</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>x4 to mq4 decompiler 使い方</strong><br>このキーワードで調べている人は、かなり具体的な状況にいる。</p>



<p class="wp-block-paragraph">EX4ファイルは手元にある。<br>とりあえず、mq4に戻したい。<br>可能なら自分でやりたい。</p>



<p class="wp-block-paragraph">だから、<br>ex4 to mq4 decompiler を探し、<br>使い方を調べ、<br>実際に試そうとしている。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>この段階で止まる人、そしてこの段階で無理をする人を何度も見てきた。</p>



<p class="wp-block-paragraph">結論から言うと、<br><strong>ex4 to mq4 decompilerは「使いどころ」を理解すれば有効だが、<br>同時に明確な限界もある。</strong></p>



<p class="wp-block-paragraph">もし今、<br>「この先をどう判断すべきか迷っている」<br>そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">ex4 to mq4 decompilerとは何ができるツールか</h2>



<p class="wp-block-paragraph">まず、役割を正しく整理しておきたい。</p>



<p class="wp-block-paragraph">ex4 to mq4 decompilerは、<br>EX4という <strong>MT4用の実行ファイル</strong>を解析し、<br>mq4風のコードを出力するツールだ。</p>



<p class="wp-block-paragraph">重要なのはここだ。</p>



<p class="wp-block-paragraph"><strong>mq4に戻すツールではなく、<br>mq4に近い構造を表示するツール</strong>だということ。</p>



<p class="wp-block-paragraph">この認識を誤ると、<br>期待と結果が大きくズレる。</p>



<h2 class="wp-block-heading">ex4 to mq4 decompilerの基本的な使い方</h2>



<p class="wp-block-paragraph">使い方自体は、実はそれほど難しくない。</p>



<p class="wp-block-paragraph">一般的な流れはこうだ。</p>



<p class="wp-block-paragraph">EX4ファイルを指定する。<br>解析を実行する。<br>出力されたコードを確認する。</p>



<p class="wp-block-paragraph">操作としてはシンプルだ。</p>



<p class="wp-block-paragraph">問題は、<br><strong>出力された後、どう扱うか</strong>にある。</p>



<h2 class="wp-block-heading">出力されたmq4風コードの正体</h2>



<p class="wp-block-paragraph">decompilerを使うと、<br>それなりにコードらしきものが表示される。</p>



<p class="wp-block-paragraph">if文。<br>関数定義。<br>ループ構造。</p>



<p class="wp-block-paragraph">一見すると、<br>「これで直せそうだ」と思える。</p>



<p class="wp-block-paragraph">だが、<br>ここで一度立ち止まったほうがいい。</p>



<h3 class="wp-block-heading">変数名と文脈は失われている</h3>



<p class="wp-block-paragraph">出力されるコードは、</p>



<p class="wp-block-paragraph">var1<br>var2<br>tmp_05</p>



<p class="wp-block-paragraph">こうした名前だらけになる。</p>



<p class="wp-block-paragraph">コメントもない。<br>設計意図も見えない。</p>



<p class="wp-block-paragraph"><strong>読めるが、理解できない</strong><br>この状態になる人が多い。</p>



<h3 class="wp-block-heading">そのままではコンパイルできないことが多い</h3>



<p class="wp-block-paragraph">さらに、</p>



<ul class="wp-block-list">
<li>コンパイルエラーが出る</li>



<li>修正箇所が分からない</li>



<li>動作が再現されない</li>
</ul>



<p class="wp-block-paragraph">こうした問題が起きる。</p>



<p class="wp-block-paragraph">つまり、<br><strong>出力された時点では、完成品ではない。</strong></p>



<h2 class="wp-block-heading">ex4 to mq4 decompilerでできること・できないこと</h2>



<p class="wp-block-paragraph">ここで一度、線を引いておく。</p>



<p class="wp-block-paragraph">できることは、</p>



<p class="wp-block-paragraph">処理の流れを把握する。<br>構造を俯瞰する。<br>ロジックの雰囲気を掴む。</p>



<p class="wp-block-paragraph">できないことは、</p>



<p class="wp-block-paragraph">完全な復元。<br>口座縛りの自動解除。<br>元EAと同じ挙動の保証。</p>



<p class="wp-block-paragraph">この区別を理解しているかどうかで、<br>判断のスピードが変わる。</p>



<h2 class="wp-block-heading">解析できても解除できない理由</h2>



<p class="wp-block-paragraph">多くの人がここで詰まる。</p>



<p class="wp-block-paragraph">「コードは見えているのに、解除できない」</p>



<p class="wp-block-paragraph">理由は単純ではないが、<br>共通点はある。</p>



<h3 class="wp-block-heading">制御ロジックが売買ロジックに埋め込まれている</h3>



<p class="wp-block-paragraph">口座番号チェック。<br>ブローカー判定。<br>サーバー名制御。</p>



<p class="wp-block-paragraph">これらが<br>売買条件と一体化していると、<br>「この部分を消せばいい」という話にならない。</p>



<h3 class="wp-block-heading">解除＝削除ではない</h3>



<p class="wp-block-paragraph">制御を消すと、<br>EAが動かなくなる。</p>



<p class="wp-block-paragraph">これは、</p>



<p class="wp-block-paragraph">制御が<br>EA全体の前提条件として設計されている<br>というケースだ。</p>



<p class="wp-block-paragraph">解析はできる。<br>だが、解除はできない。</p>



<h2 class="wp-block-heading">Ghidraを併用しても残る課題</h2>



<p class="wp-block-paragraph">さらに踏み込む人は、<br><strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を併用する。</p>



<p class="wp-block-paragraph">逆アセンブルできる。<br>フローが見える。<br>解析精度は上がる。</p>



<p class="wp-block-paragraph">それでも、<br>解除できないケースは多い。</p>



<p class="wp-block-paragraph">理由は同じだ。</p>



<ul class="wp-block-list">
<li>MT4特有の構造</li>



<li>EA固有の設計</li>



<li>再構築前提の作り</li>
</ul>



<p class="wp-block-paragraph">Ghidraは強力だが、<br>解除を保証するツールではない。</p>



<p class="wp-block-paragraph">Ghidraを使った後に残る課題については、<br>こちらで詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ex4-decompile-ghidra/">GhidraでEX4デコンパイルを試した後に残る課題とは</a></p>



<h2 class="wp-block-heading">解除依頼に切り替える判断点</h2>



<p class="wp-block-paragraph">ここが、この記事の一番大事な部分だ。</p>



<p class="wp-block-paragraph">「どこまで自分でやるか」<br>「どこから依頼に切り替えるか」</p>



<p class="wp-block-paragraph">判断軸は、意外とシンプルだ。</p>



<h3 class="wp-block-heading">学習・研究目的なら自力で続ける価値がある</h3>



<p class="wp-block-paragraph">構造を理解したい。<br>自分でEAを書き直したい。</p>



<p class="wp-block-paragraph">この場合、<br>ex4 to mq4 decompilerは十分に役立つ。</p>



<p class="wp-block-paragraph">時間をかける価値もある。</p>



<h3 class="wp-block-heading">実用目的なら切り替えのタイミング</h3>



<p class="wp-block-paragraph">口座縛りを解除したい。<br>自分の環境でEAを動かしたい。<br>元の挙動を維持したい。</p>



<p class="wp-block-paragraph">この目的なら、<br><strong>解析できたが解除できない時点が切り替えの判断点</strong>になる。</p>



<p class="wp-block-paragraph">ここから先は、<br>ツールではなく設計と再構築の領域だ。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">ex4 to mq4 decompilerに期待しすぎないこと</h2>



<p class="wp-block-paragraph">よくある誤解がある。</p>



<p class="wp-block-paragraph">「もっと使いこなせば何とかなる」<br>「別のdecompilerなら解除できる」</p>



<p class="wp-block-paragraph">だが実際は、<br><strong>ツールの差よりも、EA設計の差の方が大きい。</strong></p>



<p class="wp-block-paragraph">ex4 to mq4 decompilerは、</p>



<ul class="wp-block-list">
<li>入口として優秀</li>



<li>限界も明確</li>
</ul>



<p class="wp-block-paragraph">この位置づけが一番正しい。</p>



<h2 class="wp-block-heading">まとめの前に整理しておくこと</h2>



<p class="wp-block-paragraph">ex4 to mq4 decompilerは、</p>



<p class="wp-block-paragraph">使い方を誤らなければ、<br>非常に有用なツールだ。</p>



<p class="wp-block-paragraph">だが、</p>



<p class="wp-block-paragraph">解除できるかどうかは別問題。</p>



<p class="wp-block-paragraph">ここを混同すると、<br>無駄に時間を消耗する。</p>



<h2 class="wp-block-heading">まとめ｜ex4 to mq4 decompilerの正しい使い方と判断</h2>



<p class="wp-block-paragraph"><strong>ex4 to mq4 decompilerは、解析には使える。<br>だが、解除を保証するツールではない。</strong></p>



<p class="wp-block-paragraph">だからこそ、</p>



<p class="wp-block-paragraph">解析を続けるか。<br>解除前提で切り替えるか。</p>



<p class="wp-block-paragraph">この判断が重要になる。</p>



<p class="wp-block-paragraph">もし今、<br>「解析はできたが、次で止まっている」<br>そう感じているなら、<br>判断材料としてここを確認しておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<p class="wp-block-paragraph">静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-to-mq4-decompiler-usage/">ex4 to mq4 decompilerの使い方と、解除依頼に切り替える判断点</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EX4デコンパイラで解析できても解除できない理由</title>
		<link>https://mt4decompile.com/ex4-decompiler/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 03:45:10 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=687</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompiler/">EX4デコンパイラで解析できても解除できない理由</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>ex4 デコンパイラ</strong><br>このキーワードで調べている人は、すでに一段深いところまで来ている。</p>



<p class="wp-block-paragraph">EX4を手に入れた。<br>デコンパイラを使った。<br>コードらしきものも表示された。</p>



<p class="wp-block-paragraph">「解析はできた」<br>でも、<br>「解除はできない」</p>



<p class="wp-block-paragraph">ここで止まる人は、かなり多い。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>この「解析できたのに解除できない」という相談を繰り返し受けてきた。</p>



<p class="wp-block-paragraph">結論から言うと、<br><strong>EX4デコンパイラで解析できることと、EAの制限を解除できることは、まったく別の話</strong>だ。</p>



<p class="wp-block-paragraph">もし今、<br>「ここまで来たのに、なぜ先に進めないのか」<br>そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">EX4デコンパイラで「解析できた」とはどういう状態か</h2>



<p class="wp-block-paragraph">まず、言葉の整理をしておきたい。</p>



<p class="wp-block-paragraph">EX4デコンパイラで<br>「解析できた」というのは、多くの場合こういう状態だ。</p>



<ul class="wp-block-list">
<li>コードが表示された</li>



<li>処理の流れが見えた</li>



<li>if文や関数構造が確認できた</li>
</ul>



<p class="wp-block-paragraph">これは確かに、解析ではある。</p>



<p class="wp-block-paragraph">だが、<br><strong>それは読めるようになったという意味であって、使えるようになったわけではない。</strong></p>



<p class="wp-block-paragraph">この認識のズレが、<br>最初のつまずきになる。</p>



<h2 class="wp-block-heading">解析と解除は別工程</h2>



<p class="wp-block-paragraph">EX4デコンパイラは、<br>実行ファイルを解析し、<br>構造を人が理解できる形に近づけるツールだ。</p>



<p class="wp-block-paragraph">一方で、<br>解除とは何か。</p>



<ul class="wp-block-list">
<li>口座縛りを無効化する</li>



<li>制御条件を書き換える</li>



<li>元と同じ挙動で動かす</li>
</ul>



<p class="wp-block-paragraph">これは、<br><strong>解析のその先の作業</strong>になる。</p>



<p class="wp-block-paragraph">解析できたから解除できる、<br>という直線的な関係はない。</p>



<h2 class="wp-block-heading">EX4デコンパイラで解除できない典型的な理由</h2>



<p class="wp-block-paragraph">ここからが本題だ。</p>



<p class="wp-block-paragraph">「コードは見えているのに解除できない」<br>その理由には、はっきりしたパターンがある。</p>



<h3 class="wp-block-heading">理由① 制御ロジックが分離されていない</h3>



<p class="wp-block-paragraph">多くのEAでは、</p>



<p class="wp-block-paragraph">売買ロジック<br>制御ロジック</p>



<p class="wp-block-paragraph">これがきれいに分かれていない。</p>



<p class="wp-block-paragraph">口座番号チェック。<br>ブローカー判定。<br>サーバー名照合。</p>



<p class="wp-block-paragraph">こうした制御が、<br>売買条件の中に直接組み込まれている。</p>



<p class="wp-block-paragraph">そのため、</p>



<p class="wp-block-paragraph">「このif文を消せばいい」<br>という単純な話にならない。</p>



<p class="wp-block-paragraph">解析はできる。<br>だが、解除ポイントが特定できない。</p>



<h3 class="wp-block-heading">理由② 変数名と文脈が失われている</h3>



<p class="wp-block-paragraph">EX4は、<br>コンパイル時に多くの情報を失っている。</p>



<p class="wp-block-paragraph">意味のある変数名。<br>コメント。<br>設計時の意図。</p>



<p class="wp-block-paragraph">デコンパイラが出力するのは、</p>



<p class="wp-block-paragraph">var1<br>var2<br>tmp_03</p>



<p class="wp-block-paragraph">こうした無機質なコードだ。</p>



<p class="wp-block-paragraph">読める。<br>だが、<strong>何を意図した処理なのか分からない。</strong></p>



<p class="wp-block-paragraph">この状態では、<br>解除してよい部分と、<br>触ってはいけない部分の区別が難しい。</p>



<h3 class="wp-block-heading">理由③ 解除しても挙動が再現できない</h3>



<p class="wp-block-paragraph">仮に、<br>制御条件らしき部分を見つけて削除したとしても、<br>次の問題が起きる。</p>



<ul class="wp-block-list">
<li>EAが動かない</li>



<li>エントリーしない</li>



<li>挙動が変わる</li>
</ul>



<p class="wp-block-paragraph">これは、<br>制御と売買が密接に絡んでいる証拠だ。</p>



<p class="wp-block-paragraph">解除はできたように見えても、<br><strong>元のEAとは別物</strong>になってしまう。</p>



<h2 class="wp-block-heading">デコンパイラを使い込んだ人ほどぶつかる壁</h2>



<p class="wp-block-paragraph">ここが、少し皮肉なところだ。</p>



<p class="wp-block-paragraph">EX4デコンパイラを使い込み、<br>解析に慣れた人ほど、<br>次の壁にぶつかる。</p>



<p class="wp-block-paragraph">「全部は読める」<br>「でも、どう直せばいいか分からない」</p>



<p class="wp-block-paragraph">これはスキル不足ではない。</p>



<p class="wp-block-paragraph"><strong>EX4という形式の限界</strong>だ。</p>



<h2 class="wp-block-heading">Ghidraを使っても残る課題</h2>



<p class="wp-block-paragraph">さらに一歩踏み込む人は、<br><strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を使う。</p>



<p class="wp-block-paragraph">逆アセンブル。<br>構造解析。<br>フローの可視化。</p>



<p class="wp-block-paragraph">かなり深いところまで見える。</p>



<p class="wp-block-paragraph">だが、それでも解除できないケースは多い。</p>



<p class="wp-block-paragraph">理由は同じだ。</p>



<ul class="wp-block-list">
<li>MT4特有の関数構造</li>



<li>EA固有の制御設計</li>



<li>再構築前提の設計</li>
</ul>



<p class="wp-block-paragraph">Ghidraは解析を助けるが、<br>解除を保証するツールではない。</p>



<p class="wp-block-paragraph">Ghidraを使ったあとに残る課題については、<br>こちらの記事で詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ex4-decompile-ghidra/">GhidraでEX4デコンパイルを試した後に残る課題とは</a></p>



<h2 class="wp-block-heading">EX4デコンパイラに期待しすぎると起きるズレ</h2>



<p class="wp-block-paragraph">よくある誤解がある。</p>



<p class="wp-block-paragraph">「解析できた＝解除できる」<br>「ツールを変えれば何とかなる」</p>



<p class="wp-block-paragraph">だが実際は、<br><strong>ツールの問題ではなく、設計の問題</strong>であることがほとんどだ。</p>



<p class="wp-block-paragraph">デコンパイラは、</p>



<ul class="wp-block-list">
<li>理解を助ける</li>



<li>構造を可視化する</li>
</ul>



<p class="wp-block-paragraph">ここまで。</p>



<p class="wp-block-paragraph">解除は、<br>その先の設計判断になる。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">解除できるEAとできないEAの分かれ目</h2>



<p class="wp-block-paragraph">相談が多いので、<br>ここははっきり書いておく。</p>



<p class="wp-block-paragraph">解除しやすいEAは、</p>



<ul class="wp-block-list">
<li>制御と売買が分離されている</li>



<li>構造が単純</li>



<li>古い設計</li>
</ul>



<p class="wp-block-paragraph">逆に、解除が難しいEAは、</p>



<ul class="wp-block-list">
<li>制御が深く埋め込まれている</li>



<li>複数条件が絡む</li>



<li>再構築前提の設計</li>
</ul>



<p class="wp-block-paragraph">後者の場合、<br><strong>解析できても解除できない</strong>のは普通だ。</p>



<h2 class="wp-block-heading">まとめの前に整理しておくこと</h2>



<p class="wp-block-paragraph">EX4デコンパイラで、</p>



<p class="wp-block-paragraph">解析できた。<br>コードが見えた。</p>



<p class="wp-block-paragraph">それ自体は、<br>間違いなく前進だ。</p>



<p class="wp-block-paragraph">だが、<br>解除とは別工程であり、<br>同じ努力では届かない。</p>



<h2 class="wp-block-heading">まとめ｜EX4デコンパイラで解除できないのは珍しくない</h2>



<p class="wp-block-paragraph"><strong>EX4デコンパイラで解析できても、解除できない理由は明確に存在する。</strong></p>



<p class="wp-block-paragraph">それは、</p>



<p class="wp-block-paragraph">スキル不足ではない。<br>ツール選びの問題でもない。<br><strong>EX4という形式と設計の問題</strong>だ。</p>



<p class="wp-block-paragraph">だからこそ、</p>



<p class="wp-block-paragraph">解析を続けるか。<br>再構築を前提に切り替えるか。</p>



<p class="wp-block-paragraph">この判断が、<br>次の一手になる。</p>



<p class="wp-block-paragraph">もし今、<br>「解析はできたが、解除で止まっている」<br>そう感じているなら、<br>判断材料としてここを確認しておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<p class="wp-block-paragraph">静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompiler/">EX4デコンパイラで解析できても解除できない理由</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EX4デコンパイルツールを試す前に知っておくべき制限</title>
		<link>https://mt4decompile.com/ex4-decompile-download/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 03:39:53 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=685</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-download/">EX4デコンパイルツールを試す前に知っておくべき制限</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>ex4 デコンパイル ダウンロード</strong><br>このキーワードで調べている人は、すでに一歩踏み込んでいる。</p>



<p class="wp-block-paragraph">「とりあえずツールを落とせば何とかなる」<br>昔は、正直それで済んだ時代もあった。</p>



<p class="wp-block-paragraph">今は少し違う。</p>



<p class="wp-block-paragraph">EX4デコンパイルツールをダウンロードし、<br>実行し、<br>解析を始めたところで、<br>思ったより早く止まる。</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>この「ダウンロードまでは行ったが、その先で詰まった」相談を何度も受けてきた。</p>



<p class="wp-block-paragraph">結論から言うと、<br><strong>EX4デコンパイルツールを試す前に、知っておくべき制限がいくつかある。</strong><br>これを知らないままダウンロードすると、遠回りになりやすい。</p>



<p class="wp-block-paragraph">もし今、<br>「まずはツールを試そうとしている」<br>その段階なら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">EX4デコンパイルツールがまず探される理由</h2>



<p class="wp-block-paragraph">ex4 デコンパイル ダウンロード<br>この検索には、はっきりした心理がある。</p>



<ul class="wp-block-list">
<li>無料で試したい</li>



<li>自分でできるところまでやりたい</li>



<li>依頼は最後の手段にしたい</li>
</ul>



<p class="wp-block-paragraph">これは自然だ。</p>



<p class="wp-block-paragraph">特に、<br>EX4を手に入れた直後は<br>「コードに戻せば解決するはず」という期待がある。</p>



<p class="wp-block-paragraph">だから、</p>



<p class="wp-block-paragraph">検索する<br>ダウンロードする<br>実行する</p>



<p class="wp-block-paragraph">ここまでは、ほぼ全員が同じ道を通る。</p>



<h2 class="wp-block-heading">ダウンロード前に理解しておくべき前提</h2>



<p class="wp-block-paragraph">まず、冷静に整理しておきたい。</p>



<p class="wp-block-paragraph">EX4は、<br><strong>MT4用にコンパイルされた実行ファイル</strong>だ。</p>



<p class="wp-block-paragraph">つまり、</p>



<ul class="wp-block-list">
<li>人が読む前提ではない</li>



<li>再編集を想定していない</li>



<li>設計意図は削除されている</li>
</ul>



<p class="wp-block-paragraph">この状態から、<br>「元のMQ4を完全に取り戻す」ことは前提として難しい。</p>



<p class="wp-block-paragraph">EX4デコンパイルツールは、<br><strong>復元ツールではなく、解析補助ツール</strong>だと考えた方が近い。</p>



<h2 class="wp-block-heading">EX4デコンパイルツールの主な制限</h2>



<p class="wp-block-paragraph">ここからが本題になる。</p>



<p class="wp-block-paragraph">ツールをダウンロードする前に、<br>最低限知っておくべき制限がある。</p>



<h3 class="wp-block-heading">制限① 完全な復元はできない</h3>



<p class="wp-block-paragraph">これは一番大きな誤解だ。</p>



<p class="wp-block-paragraph">EX4からMQ4に戻すといっても、</p>



<p class="wp-block-paragraph">変数名<br>コメント<br>作者の意図</p>



<p class="wp-block-paragraph">これらは戻らない。</p>



<p class="wp-block-paragraph">ツールが吐き出すのは、<br><strong>実行構造を再構成したコード</strong>に近い。</p>



<p class="wp-block-paragraph">「それっぽいコード」は出る。<br>だが、そのまま使えることは少ない。</p>



<h3 class="wp-block-heading">制限② MT4ビルドとの相性がある</h3>



<p class="wp-block-paragraph">EX4は、<br>コンパイルされたMT4のビルドに強く依存する。</p>



<p class="wp-block-paragraph">古いツールでは、</p>



<ul class="wp-block-list">
<li>解析が途中で止まる</li>



<li>何も出力されない</li>



<li>意味のないコードになる</li>
</ul>



<p class="wp-block-paragraph">こうした現象が起きやすい。</p>



<p class="wp-block-paragraph">これは操作ミスではない。</p>



<h3 class="wp-block-heading">制限③ 制御ロジックが分離できない</h3>



<p class="wp-block-paragraph">口座縛り。<br>ブローカー制限。<br>サーバー判定。</p>



<p class="wp-block-paragraph">これらが<br>売買ロジックと一体化しているEAは、<br>ツールでは切り分けられない。</p>



<p class="wp-block-paragraph">結果として、<br>「どこを直せばいいのか分からない」状態になる。</p>



<h2 class="wp-block-heading">解析ツールを使っても残る課題</h2>



<p class="wp-block-paragraph">EX4デコンパイルツールで止まった後、<br>さらに踏み込む人は <strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を使うことが多い。</p>



<p class="wp-block-paragraph">逆アセンブルできる。<br>構造が追える。<br>かなり“解析している感”が出る。</p>



<p class="wp-block-paragraph">だが、Ghidraを使っても、<br>必ず残る課題がある。</p>



<ul class="wp-block-list">
<li>MT4特有の関数構造をどう読み替えるか</li>



<li>売買ロジックと制御の境界をどう判断するか</li>



<li>最終的に動く形へどう再構築するか</li>
</ul>



<p class="wp-block-paragraph">ここで止まる人が非常に多い。</p>



<p class="wp-block-paragraph">Ghidraを試した後に何が壁になるのかについては、<br>こちらの記事で詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ex4-decompile-ghidra/">GhidraでEX4デコンパイルを試した後に残る課題とは</a></p>



<h2 class="wp-block-heading">EX4デコンパイルツールに期待しすぎると起きるズレ</h2>



<p class="wp-block-paragraph">よくあるズレがある。</p>



<p class="wp-block-paragraph">「ツールを変えれば解決する」<br>「もっと良いダウンロード先があるはず」</p>



<p class="wp-block-paragraph">だが実際は、<br><strong>ツールの問題ではなく、EX4の構造そのものが原因</strong>であることが多い。</p>



<p class="wp-block-paragraph">ツールは、</p>



<ul class="wp-block-list">
<li>入口としては有効</li>



<li>限界点も明確</li>
</ul>



<p class="wp-block-paragraph">という位置づけだ。</p>



<p class="wp-block-paragraph">その限界を越えるには、<br>考え方を切り替える必要がある。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">ダウンロード前に一度考えておきたいこと</h2>



<p class="wp-block-paragraph">EX4デコンパイルツールをダウンロードする前に、<br>一度だけ自分に問いかけてほしい。</p>



<p class="wp-block-paragraph">・目的は学習か<br>・それとも実用か</p>



<h3 class="wp-block-heading">学習目的なら</h3>



<p class="wp-block-paragraph">構造を理解したい。<br>ロジックを読みたい。<br>自分で書き直す前提。</p>



<p class="wp-block-paragraph">この場合、<br>ツール＋解析で止まっても問題ない。</p>



<h3 class="wp-block-heading">実用目的なら</h3>



<p class="wp-block-paragraph">口座縛りを解除したい。<br>自分の口座で動かしたい。<br>EAをそのまま使いたい。</p>



<p class="wp-block-paragraph">この目的なら、<br><strong>ツールで止まるのは想定内</strong>だ。</p>



<p class="wp-block-paragraph">ここを理解していないと、<br>ダウンロード → 試行 → 停滞<br>を何度も繰り返すことになる。</p>



<h2 class="wp-block-heading">まとめの前に整理しておく制限</h2>



<p class="wp-block-paragraph">EX4デコンパイルツールには、</p>



<p class="wp-block-paragraph">できること<br>できないこと</p>



<p class="wp-block-paragraph">がはっきり分かれている。</p>



<ul class="wp-block-list">
<li>完全復元は不可</li>



<li>ビルド依存がある</li>



<li>制御分離は難しい</li>
</ul>



<p class="wp-block-paragraph">この制限を知らずにダウンロードすると、<br>「思ったのと違う」と感じやすい。</p>



<h2 class="wp-block-heading">まとめ｜EX4デコンパイルツールを試す前に</h2>



<p class="wp-block-paragraph"><strong>EX4デコンパイルツールは万能ではない。</strong></p>



<p class="wp-block-paragraph">だが、<br>入口としては十分に価値がある。</p>



<p class="wp-block-paragraph">重要なのは、</p>



<p class="wp-block-paragraph">どこまで無料・ツールで試すか。<br>どこで考え方を切り替えるか。</p>



<p class="wp-block-paragraph">この判断だけだ。</p>



<p class="wp-block-paragraph">もし今、<br>「ダウンロードする前に一度整理したい」<br>そう感じているなら、<br>判断材料としてここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com">デコンパイルはこちら</a></p>



<p class="wp-block-paragraph">静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-download/">EX4デコンパイルツールを試す前に知っておくべき制限</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EX4デコンパイルは無料でどこまで可能か｜依頼に切り替える境界</title>
		<link>https://mt4decompile.com/ex4-decompile-free-limit/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 03:35:01 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=681</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-free-limit/">EX4デコンパイルは無料でどこまで可能か｜依頼に切り替える境界</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MT4デコンパイル診断フォーム</title>
    <style>
        .mt4-diagnostic-form {
            max-width: 700px;
            margin: 20px auto;
            padding: 20px;
            background: #2d2d2d;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.3);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            border: 1px solid #3d3d3d;
        }
        
        .form-content {
            position: relative;
        }
        
        .mt4-diagnostic-form h3 {
            color: #ffffff;
            text-align: center;
            margin-bottom: 4px;
            font-size: 20px;
            font-weight: 700;
        }
        
        .mt4-diagnostic-form .subtitle {
            text-align: center;
            color: #999;
            margin-bottom: 14px;
            font-size: 12px;
        }
        
        .question-block {
            background: #3a3a3a;
            padding: 14px;
            margin-bottom: 10px;
            border-radius: 6px;
            border-left: 3px solid #ff6b6b;
        }
        
        .question-block.hidden {
            display: none;
        }
        
        .question-title {
            font-weight: 600;
            color: #e0e0e0;
            margin-bottom: 10px;
            font-size: 13px;
            display: flex;
            align-items: center;
        }
        
        .question-number {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ff6b6b;
            color: white;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            font-size: 11px;
            margin-right: 8px;
            font-weight: 700;
            flex-shrink: 0;
        }
        
        .options {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        
        .option-label {
            display: flex;
            align-items: center;
            padding: 8px 12px;
            background: #2d2d2d;
            border: 1px solid #4a4a4a;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #ccc;
        }
        
        .option-label:hover {
            background: #353535;
            border-color: #ff6b6b;
            color: #fff;
        }
        
        .option-label input[type="radio"] {
            margin-right: 8px;
            cursor: pointer;
            accent-color: #ff6b6b;
        }
        
        .btn-container {
            text-align: center;
            margin-top: 12px;
        }
        
        .btn {
            padding: 9px 26px;
            font-size: 13px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-next {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-next:hover {
            background: #ff5252;
            box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
        }
        
        .btn-next:disabled {
            background: #555;
            cursor: not-allowed;
            color: #888;
        }
        
        .result-container {
            background: #3a3a3a;
            padding: 20px;
            border-radius: 6px;
            text-align: center;
        }
        
        .result-container.hidden {
            display: none;
        }
        
        .result-icon {
            font-size: 44px;
            margin-bottom: 10px;
        }
        
        .result-title {
            font-size: 18px;
            font-weight: bold;
            color: #ffffff;
            margin-bottom: 8px;
        }
        
        .result-message {
            color: #ccc;
            margin-bottom: 14px;
            line-height: 1.6;
            font-size: 13px;
        }
        
        .result-details {
            background: #2d2d2d;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 14px;
            text-align: left;
            border: 1px solid #4a4a4a;
        }
        
        .result-details h4 {
            color: #ff6b6b;
            margin-bottom: 8px;
            font-size: 13px;
            font-weight: 600;
        }
        
        .result-details ul {
            margin: 0;
            padding-left: 18px;
            color: #aaa;
            font-size: 12px;
        }
        
        .result-details li {
            margin-bottom: 4px;
        }
        
        .difficulty-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .difficulty-badge.easy {
            background: #4caf50;
            color: white;
        }
        
        .difficulty-badge.medium {
            background: #ff9800;
            color: white;
        }
        
        .difficulty-badge.advanced {
            background: #ff6b6b;
            color: white;
        }
        
        .btn-cta {
            background: #ff6b6b;
            color: white;
            padding: 10px 28px;
            font-size: 14px;
            text-decoration: none;
            display: inline-block;
            border-radius: 4px;
            transition: all 0.3s ease;
            font-weight: 600;
        }
        
        .btn-cta:hover {
            background: #ff5252;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
        
        .progress-bar {
            width: 100%;
            height: 3px;
            background: #4a4a4a;
            border-radius: 2px;
            margin-bottom: 14px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #ff6b6b;
            transition: width 0.3s ease;
        }
        
        .note-box {
            background: #2d2d2d;
            padding: 10px;
            border-left: 3px solid #ff6b6b;
            border-radius: 4px;
            margin-top: 12px;
            text-align: left;
            font-size: 11px;
            color: #aaa;
            border: 1px solid #4a4a4a;
        }
        
        .intro-screen {
            background: #3a3a3a;
            padding: 24px;
            border-radius: 6px;
            text-align: center;
        }
        
        .intro-screen.hidden {
            display: none;
        }
        
        .intro-content {
            max-width: 500px;
            margin: 0 auto;
        }
        
        .intro-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        
        .intro-content h4 {
            color: #fff;
            font-size: 20px;
            margin-bottom: 12px;
            font-weight: 600;
        }
        
        .intro-text {
            color: #ccc;
            font-size: 13px;
            line-height: 1.6;
            margin-bottom: 24px;
        }
        
        .btn-start {
            background: #ff6b6b;
            color: white;
            padding: 12px 36px;
            font-size: 15px;
            border-radius: 4px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .btn-start:hover {
            background: #ff5252;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
        }
    </style>
</head>
<body>
    <div class="mt4-diagnostic-form">
        <div class="form-content">
            
            <div class="progress-bar" id="progressBarContainer" style="display: none;">
                <div class="progress-fill" id="progressBar" style="width: 0%"></div>
            </div>
            
            <!-- イントロ画面 -->
            <div class="intro-screen" id="introScreen">
                <div class="intro-content">
                    <div class="intro-icon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
                    <h4>デコンパイル可能性を診断</h4>
                    <p class="intro-text">
                        5つの質問で診断します（所要時間：約1分）
                    </p>
                    <button type="button" class="btn btn-start" id="startBtn">診断を開始する</button>
                </div>
            </div>
        
        <form id="diagnosticForm" style="display: none;">
            <!-- 質問1 -->
            <div class="question-block" data-question="1">
                <div class="question-title">
                    <span class="question-number">Q1</span>
                    ファイルの拡張子は何ですか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q1" value="ex4" required>
                        .ex4ファイル
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="mq4">
                        .mq4ファイル(ソースコード)
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q1" value="other">
                        その他のファイル
                    </label>
                </div>
            </div>
            
            <!-- 質問2 -->
            <div class="question-block hidden" data-question="2">
                <div class="question-title">
                    <span class="question-number">Q2</span>
                    ファイルは特定の口座でしか動作しませんか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q2" value="yes" required>
                        はい、特定の口座でのみ動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="no">
                        いいえ、どの口座でも動作します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q2" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問3 -->
            <div class="question-block hidden" data-question="3">
                <div class="question-title">
                    <span class="question-number">Q3</span>
                    ファイルを開こうとしたときにエラーが表示されますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q3" value="account-error" required>
                        口座番号に関するエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="other-error">
                        別のエラーが表示される
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q3" value="no-error">
                        エラーは表示されない
                    </label>
                </div>
            </div>
            
            <!-- 質問4 -->
            <div class="question-block hidden" data-question="4">
                <div class="question-title">
                    <span class="question-number">Q4</span>
                    EAが外部DLLファイルを使用していますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q4" value="yes" required>
                        はい、DLLファイルが必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="no">
                        いいえ、使用していません
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q4" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <!-- 質問5 -->
            <div class="question-block hidden" data-question="5">
                <div class="question-title">
                    <span class="question-number">Q5</span>
                    起動時に外部サーバーでライセンス認証を行いますか?
                </div>
                <div class="options">
                    <label class="option-label">
                        <input type="radio" name="q5" value="yes" required>
                        はい、外部サーバーで認証が必要です
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="no">
                        いいえ、ローカルで認証が完結します
                    </label>
                    <label class="option-label">
                        <input type="radio" name="q5" value="unknown">
                        わかりません
                    </label>
                </div>
            </div>
            
            <div class="btn-container">
                <button type="button" class="btn btn-next" id="nextBtn" disabled>次へ</button>
            </div>
        </form>
        
        <!-- 結果表示 -->
        <div class="result-container hidden" id="resultContainer">
            <div class="result-icon" id="resultIcon"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
            <div class="difficulty-badge" id="difficultyBadge"></div>
            <div class="result-title" id="resultTitle"></div>
            <div class="result-message" id="resultMessage"></div>
            <div class="result-details" id="resultDetails"></div>
            <a href="https://formok.com/f/64hux0wy?case_id=4ZAMXB" class="btn-cta" target="_blank">
                詳しく相談する →
            </a>
            <div class="note-box">
                <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 最終的な判断には実際のファイル解析が必要です。まずはお気軽にご相談ください。
            </div>
        </div>
        </div>
    </div>

    <script>
        let currentQuestion = 0; // 0 = intro screen
        const totalQuestions = 5;
        const answers = {};
        
        const form = document.getElementById('diagnosticForm');
        const nextBtn = document.getElementById('nextBtn');
        const startBtn = document.getElementById('startBtn');
        const introScreen = document.getElementById('introScreen');
        const progressBar = document.getElementById('progressBar');
        const progressBarContainer = document.getElementById('progressBarContainer');
        const resultContainer = document.getElementById('resultContainer');
        
        // 診断開始ボタン
        startBtn.addEventListener('click', function() {
            introScreen.classList.add('hidden');
            form.style.display = 'block';
            progressBarContainer.style.display = 'block';
            currentQuestion = 1;
            showQuestion(1);
        });
        
        // 質問を表示
        function showQuestion(questionNum) {
            const questionBlock = document.querySelector(`[data-question="${questionNum}"]`);
            if (questionBlock) {
                questionBlock.classList.remove('hidden');
            }
        }
        
        // ラジオボタンの選択を監視
        form.addEventListener('change', function(e) {
            if (e.target.type === 'radio') {
                nextBtn.disabled = false;
                answers[e.target.name] = e.target.value;
            }
        });
        
        // 次へボタンのクリック処理
        nextBtn.addEventListener('click', function() {
            const currentQuestionBlock = document.querySelector(`[data-question="${currentQuestion}"]`);
            const selectedOption = form.querySelector(`input[name="q${currentQuestion}"]:checked`);
            
            if (!selectedOption) return;
            
            // 現在の質問を非表示
            currentQuestionBlock.classList.add('hidden');
            
            // 次の質問へ
            currentQuestion++;
            
            // プログレスバーを更新
            const progress = (currentQuestion / totalQuestions) * 100;
            progressBar.style.width = progress + '%';
            
            if (currentQuestion <= totalQuestions) {
                // 次の質問を表示
                showQuestion(currentQuestion);
                nextBtn.disabled = true;
                
                // 最後の質問の場合はボタンテキストを変更
                if (currentQuestion === totalQuestions) {
                    nextBtn.textContent = '診断結果を見る';
                }
            } else {
                // すべての質問が終わったら結果を表示
                showResult();
            }
        });
        
        function showResult() {
            form.style.display = 'none';
            document.querySelector('.progress-bar').style.display = 'none';
            resultContainer.classList.remove('hidden');
            
            // 回答に基づいて結果を判定
            const resultType = determineResultType();
            displayResult(resultType);
        }
        
        function determineResultType() {
            // スコアリングシステム
            let complexityScore = 0;
            
            // Q1: ファイル拡張子
            if (answers.q1 === 'mq4') {
                return 'already-source'; // すでにソースコード
            } else if (answers.q1 === 'other') {
                return 'not-ex4'; // ex4ファイルではない
            }
            
            // Q2: 口座縛り
            if (answers.q2 === 'yes') {
                complexityScore += 0; // 標準的なケース
            } else if (answers.q2 === 'no') {
                complexityScore += 1; // 口座縛りなし
            }
            
            // Q3: エラー表示
            if (answers.q3 === 'account-error') {
                complexityScore += 0; // 標準的な口座エラー
            } else if (answers.q3 === 'other-error') {
                complexityScore += 2; // 別のエラー
            }
            
            // Q4: DLL使用
            if (answers.q4 === 'yes') {
                complexityScore += 3; // DLL使用で複雑度アップ
            } else if (answers.q4 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // Q5: オンライン認証
            if (answers.q5 === 'yes') {
                complexityScore += 3; // サーバー認証で複雑度アップ
            } else if (answers.q5 === 'no') {
                complexityScore += 0;
            } else {
                complexityScore += 1; // 不明
            }
            
            // スコアに基づいて結果タイプを決定
            if (complexityScore === 0) {
                return 'standard'; // 標準的なケース
            } else if (complexityScore <= 2) {
                return 'moderate'; // やや複雑
            } else if (complexityScore <= 4) {
                return 'complex'; // 複雑
            } else {
                return 'advanced'; // 高度な保護
            }
        }
        
        function displayResult(resultType) {
            const resultIcon = document.getElementById('resultIcon');
            const difficultyBadge = document.getElementById('difficultyBadge');
            const resultTitle = document.getElementById('resultTitle');
            const resultMessage = document.getElementById('resultMessage');
            const resultDetails = document.getElementById('resultDetails');
            
            switch(resultType) {
                case 'already-source':
                    resultIcon.textContent = '&#x1f4c4;';
                    difficultyBadge.textContent = '対応不要';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'すでにソースコードです！';
                    resultMessage.innerHTML = '.mq4ファイルはソースコードなので、デコンパイルの必要はありません。<br>そのまま編集・カスタマイズが可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x2705; 次のステップ</h4>
                        <ul>
                            <li>MetaEditorで直接編集できます</li>
                            <li>口座縛りの解除も容易に可能です</li>
                            <li>ロジックの修正・改良が自由にできます</li>
                        </ul>
                    `;
                    break;
                    
                case 'not-ex4':
                    resultIcon.textContent = '&#x2753;';
                    difficultyBadge.textContent = '要確認';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'ファイル形式の確認が必要です';
                    resultMessage.innerHTML = 'ex4ファイル以外の場合、デコンパイルサービスの対象外となる可能性があります。<br>まずはファイルをご確認ください。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4cb; 確認事項</h4>
                        <ul>
                            <li>ファイル拡張子が.ex4または.mq4か確認してください</li>
                            <li>MT4のエキスパートフォルダに配置できるファイルか確認してください</li>
                            <li>不明な場合はお問い合わせください</li>
                        </ul>
                    `;
                    break;
                    
                case 'standard':
                    resultIcon.textContent = '&#x2705;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 高';
                    difficultyBadge.className = 'difficulty-badge easy';
                    resultTitle.textContent = 'デコンパイル可能です！';
                    resultMessage.innerHTML = '標準的な口座縛りのケースです。<br>デコンパイルと口座縛り解除が比較的スムーズに行える可能性が高いです。';
                    resultDetails.innerHTML = `
                        <h4>&#x2728; 期待できること</h4>
                        <ul>
                            <li>口座番号の制限を解除できます</li>
                            <li>ソースコードの取得が可能です</li>
                            <li>ロジックの確認・修正ができます</li>
                        </ul>
                    `;
                    break;
                    
                case 'moderate':
                    resultIcon.textContent = '&#x1f4a1;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中〜高';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = 'デコンパイル対応可能です';
                    resultMessage.innerHTML = 'やや複雑な保護が施されている可能性がありますが、<br>多くの場合デコンパイルと解析が可能です。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f50d; 想定される内容</h4>
                        <ul>
                            <li>基本的な難読化への対応が必要</li>
                            <li>複数の認証ポイントの解除が必要な可能性</li>
                            <li>詳細な解析により対応可能</li>
                        </ul>
                    `;
                    break;
                    
                case 'complex':
                    resultIcon.textContent = '&#x1f527;';
                    difficultyBadge.textContent = 'デコンパイル可能性: 中';
                    difficultyBadge.className = 'difficulty-badge medium';
                    resultTitle.textContent = '高度な解析で対応可能です';
                    resultMessage.innerHTML = '複雑な保護が施されている可能性がありますが、<br>専門的な技術により対応できるケースが多くあります。';
                    resultDetails.innerHTML = `
                        <h4>&#x2699; 対応について</h4>
                        <ul>
                            <li>DLLや複雑な認証への対応が必要な可能性</li>
                            <li>詳細なファイル解析が必要です</li>
                            <li>実績のある技術で対応いたします</li>
                        </ul>
                    `;
                    break;
                    
                case 'advanced':
                    resultIcon.textContent = '&#x1f3af;';
                    difficultyBadge.textContent = '要詳細診断';
                    difficultyBadge.className = 'difficulty-badge advanced';
                    resultTitle.textContent = '詳細診断が必要です';
                    resultMessage.innerHTML = '高度な保護技術が使用されている可能性があります。<br>実際のファイルを解析して対応可否を判断させていただきます。';
                    resultDetails.innerHTML = `
                        <h4>&#x1f4ca; 次のステップ</h4>
                        <ul>
                            <li>まずは無料でファイル診断を行います</li>
                            <li>DLL解析やサーバー認証の回避技術を検討</li>
                            <li>複雑なケースでも対応実績があります</li>
                            <li>難易度に応じた見積もりをご提示します</li>
                        </ul>
                    `;
                    break;
            }
        }
    </script>
</body>
</html>




<p class="wp-block-paragraph"><strong>ex4 デコンパイル 無料</strong><br>このキーワードで調べている人は、だいたい同じ場所で立ち止まっている。</p>



<p class="wp-block-paragraph">有料は避けたい。<br>まずは無料でどこまでできるのか知りたい。<br>可能なら、自分で完結させたい。</p>



<p class="wp-block-paragraph">そう思って、<br>EX4デコンパイルの無料ツールを探し、<br>いくつか試し、<br>それなりに時間も使った。</p>



<p class="wp-block-paragraph">けれど、途中でこう感じ始める。</p>



<p class="wp-block-paragraph">「これ以上、進まない」<br>「何が限界なのか分からない」<br>「依頼に切り替えるべきなのか判断できない」</p>



<p class="wp-block-paragraph">私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>まさにこの段階の相談を多く受けてきた。</p>



<p class="wp-block-paragraph">結論から言うと、<br><strong>EX4デコンパイルは無料でも一定ラインまでは可能だが、<br>越えられない境界もはっきり存在する。</strong></p>



<p class="wp-block-paragraph">もし今、<br>「無料でやれることはやった気がする」<br>そう感じているなら、判断材料として一度ここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com/"></a><a href="https://mt4decompile.com/">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">EX4デコンパイルを無料で試す人が多い理由</h2>



<p class="wp-block-paragraph">まず前提として、<br>無料から試すのはごく自然な流れだ。</p>



<p class="wp-block-paragraph">理由は単純。</p>



<ul class="wp-block-list">
<li>コストがかからない</li>



<li>情報が多い</li>



<li>手軽に始められる</li>
</ul>



<p class="wp-block-paragraph">特に、<br>「EX4をMQ4に戻せたら便利そう」<br>この段階では、依頼という選択肢はまだ遠い。</p>



<p class="wp-block-paragraph">だから、</p>



<p class="wp-block-paragraph">無料ツール → 少し調査 → それでも無理なら次を考える</p>



<p class="wp-block-paragraph">この順番になる。</p>



<h2 class="wp-block-heading">無料でできるEX4デコンパイルの範囲</h2>



<p class="wp-block-paragraph">では、実際に<br><strong>EX4デコンパイルは無料でどこまで可能なのか。</strong></p>



<p class="wp-block-paragraph">これは、かなり明確だ。</p>



<h3 class="wp-block-heading">実行構造の把握</h3>



<p class="wp-block-paragraph">無料ツールや解析ツールを使えば、</p>



<ul class="wp-block-list">
<li>条件分岐</li>



<li>処理の流れ</li>



<li>関数の呼び出し順</li>
</ul>



<p class="wp-block-paragraph">こうした<strong>構造レベルの把握</strong>はできる。</p>



<p class="wp-block-paragraph">「どういう順番で動いているEAか」<br>ここまでは見える。</p>



<h3 class="wp-block-heading">ロジックの一部を推測する</h3>



<p class="wp-block-paragraph">売買条件の断片。<br>インジケーター参照。<br>エントリーのきっかけ。</p>



<p class="wp-block-paragraph">断片的だが、<br>ロジックの雰囲気は掴める。</p>



<p class="wp-block-paragraph">学習目的であれば、<br>この段階でも十分な人はいる。</p>



<h2 class="wp-block-heading">無料では越えられない境界</h2>



<p class="wp-block-paragraph">問題はここからだ。</p>



<p class="wp-block-paragraph">無料で試している多くの人が、<br>同じ場所で止まる。</p>



<h3 class="wp-block-heading">変数名・コメントは戻らない</h3>



<p class="wp-block-paragraph">EX4は、<br>コンパイル時に情報が削除される。</p>



<p class="wp-block-paragraph">意味のある変数名。<br>作者のコメント。<br>設計意図。</p>



<p class="wp-block-paragraph">これらは、<br>無料でも有料でも「元通り」にはならない。</p>



<h3 class="wp-block-heading">口座縛りなどの制御が読めない</h3>



<p class="wp-block-paragraph">口座番号チェック。<br>ブローカー制御。<br>サーバー名判定。</p>



<p class="wp-block-paragraph">こうした制御は、<br>売買ロジックと混ざっていることが多い。</p>



<p class="wp-block-paragraph">無料ツールでは、<br>分離できずに止まる。</p>



<h3 class="wp-block-heading">実際に動くMQ4にはならない</h3>



<p class="wp-block-paragraph">たとえコードが出力されても、</p>



<ul class="wp-block-list">
<li>コンパイルできない</li>



<li>動作しない</li>



<li>挙動が違う</li>
</ul>



<p class="wp-block-paragraph">この状態になるケースがほとんどだ。</p>



<p class="wp-block-paragraph"><strong>無料で「使えるEA」に戻すのは、現実的ではない。</strong></p>



<h2 class="wp-block-heading">Ghidraを使った後に見えてくる壁</h2>



<p class="wp-block-paragraph">無料の範囲で<br>一歩踏み込む人は <strong><strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong></strong> を使うことが多い。</p>



<p class="wp-block-paragraph">逆アセンブルできる。<br>構造が追える。<br>「解析している感」はある。</p>



<p class="wp-block-paragraph">だが、Ghidraを使ったあと、<br>必ず次の壁にぶつかる。</p>



<ul class="wp-block-list">
<li>MT4特有の処理をどう再解釈するか</li>



<li>売買ロジックと制御をどう切り分けるか</li>



<li>最終的にどう動く形に戻すか</li>
</ul>



<p class="wp-block-paragraph">このあたりで止まる。</p>



<p class="wp-block-paragraph">Ghidraを使ったあとに残る課題については、<br>こちらで詳しく整理している。</p>



<p class="wp-block-paragraph">・<a href="https://mt4decompile.com/ex4-decompile-ghidra/">GhidraでEX4デコンパイルを試した後に残る課題とは</a></p>



<h2 class="wp-block-heading">無料から依頼に切り替える境界はどこか</h2>



<p class="wp-block-paragraph">ここが一番よく聞かれる。</p>



<p class="wp-block-paragraph">「どこまで無料でやって、<br>どこから依頼に切り替えるべきか」</p>



<p class="wp-block-paragraph">判断軸はシンプルだ。</p>



<h3 class="wp-block-heading">学習目的なら無料で十分</h3>



<p class="wp-block-paragraph">構造を理解したい。<br>ロジックを学びたい。<br>自分で書き直すつもり。</p>



<p class="wp-block-paragraph">この目的なら、<br>無料で止まっても問題ない。</p>



<p class="wp-block-paragraph">時間をかければ、得るものはある。</p>



<h3 class="wp-block-heading">実用目的なら切り替え時</h3>



<p class="wp-block-paragraph">口座縛りを解除したい。<br>自分の口座で動かしたい。<br>実戦で使いたい。</p>



<p class="wp-block-paragraph">この目的なら、<br><strong>無料で止まった時点が切り替えの境界</strong>になる。</p>



<p class="wp-block-paragraph">ここから先は、<br>ツールの問題ではなく、<br>再構築の問題になる。</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com/"></a><a href="https://mt4decompile.com/">デコンパイルはこちら</a></p>



<h2 class="wp-block-heading">無料にこだわり続けると起きるズレ</h2>



<p class="wp-block-paragraph">よくある思い込みがある。</p>



<p class="wp-block-paragraph">「無料でできるはず」<br>「もう少し調べれば何とかなる」</p>



<p class="wp-block-paragraph">だが実際は、<br>EX4の構造そのものが、<br>そこまで親切ではない。</p>



<p class="wp-block-paragraph">無料は、</p>



<p class="wp-block-paragraph">入口としては優秀。<br>限界もはっきりしている。</p>



<p class="wp-block-paragraph">その限界を越えるには、<br>発想を切り替える必要がある。</p>



<h2 class="wp-block-heading">まとめの前に整理しておくこと</h2>



<p class="wp-block-paragraph">EX4デコンパイルを無料で試して止まるのは、</p>



<p class="wp-block-paragraph">能力不足ではない。<br>やり方の問題でもない。<br><strong>構造と目的の問題</strong>だ。</p>



<p class="wp-block-paragraph">ここを見誤ると、<br>同じところを何度も回る。</p>



<h2 class="wp-block-heading">まとめ｜EX4デコンパイル無料の現実と判断軸</h2>



<p class="wp-block-paragraph"><strong>EX4デコンパイルは無料でも一定ラインまでは可能。<br>だが、越えられない境界もはっきり存在する。</strong></p>



<p class="wp-block-paragraph">学習なら無料でいい。<br>実用なら切り替える。</p>



<p class="wp-block-paragraph">その判断だけだ。</p>



<p class="wp-block-paragraph">もし今、<br>「無料でできることはやった」<br>そう感じているなら、<br>判断材料としてここを見ておくだけでも構わない。<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://mt4decompile.com/"></a><a href="https://mt4decompile.com/">デコンパイルはこちら</a></p>



<p class="wp-block-paragraph">静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-free-limit/">EX4デコンパイルは無料でどこまで可能か｜依頼に切り替える境界</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
