<?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/category/%E6%96%B9%E6%B3%95/feed/" rel="self" type="application/rss+xml" />
	<link>https://mt4decompile.com/category/方法/</link>
	<description>EAの中身を、知るための場所</description>
	<lastBuildDate>Wed, 24 Dec 2025 06:45:26 +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/category/方法/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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></p>



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



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



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



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



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



<p>もし今、<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>まず、状況を整理しておく。</p>



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



<p>この記事で想定しているのは、次の状態だ。</p>



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



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



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



<p>ここまで来ているなら、<br><strong>できることはほぼやり切っている。</strong></p>



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



<p>EAデコンパイルツールの役割は明確だ。</p>



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



<p>それ以上でも、それ以下でもない。</p>



<p>つまり、</p>



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



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



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



<p>ここまでがツールの仕事だ。</p>



<p><strong>解除・復元・再構築は、ツールの仕事ではない。</strong></p>



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



<p>多くの人が同じところで止まる。</p>



<p>理由はシンプルだ。</p>



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



<p>最近のEAは、</p>



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



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



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



<p>これらが<br>売買ロジックと一体化して設計されている。</p>



<p>そのため、</p>



<p>「制御だけ外す」<br>という操作が成立しない。</p>



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



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



<p>読めるが、<br><strong>判断できないコード</strong>になる。</p>



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



<p>少し手を入れた瞬間、<br>EAは別物になる。</p>



<p>これは解除ではなく、<br>再設計だ。</p>



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



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



<p>逆アセンブル。<br>制御フロー解析。<br>構造の可視化。</p>



<p>かなり深いところまで見える。</p>



<p>だが、それでも止まる。</p>



<p>理由は変わらない。</p>



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



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



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



<p>Ghidraは解析を助けるが、<br>解決を約束するものではない。</p>



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



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



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



<p>ここがこの記事の核心だ。</p>



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



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



<p>構造を理解できた。<br>設計思想を感じ取れた。</p>



<p>それで十分、という選択。</p>



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



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



<p>実用目的ではない。<br>リスクを取りたくない。</p>



<p>この判断も、正しい。</p>



<p>無理に触らないのは、<br>技術的にも健全だ。</p>



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



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



<p>この目的なら、<br><strong>解析ではなく再構築が必要になる。</strong></p>



<p>ここが、<br>「最終手段」と呼ばれる理由だ。</p>



<p><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>誤解されやすいが、<br>最終手段＝無理やり、ではない。</p>



<p>むしろ逆だ。</p>



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



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



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



<p><strong>一番丁寧で、再現性の高いやり方</strong>になる。</p>



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



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



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



<p>理由は明確だ。</p>



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



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



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



<p>この状態になると、<br>選択は自然に決まる。</p>



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



<p>EAデコンパイルツールは、</p>



<p>入口としては優秀。<br>学習用途にも向いている。</p>



<p>だが、</p>



<p>実用・解除・再現<br>ここまでは届かないケースが多い。</p>



<p>それを理解できた時点で、<br>もう十分に進んでいる。</p>



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



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



<p>それは、</p>



<p>失敗ではない。<br>遠回りでもない。<br><strong>現実的な到達点</strong>だ。</p>



<p>だからこそ、</p>



<p>解析を学習で終えるか。<br>再構築へ進むか。</p>



<p>この判断だけが残る。</p>



<p>もし今、<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>静かに、<br>必要な人だけが次に進めばいい。</p>



<p></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></p>



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



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



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



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



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



<p>もし今、<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>まず前提として、<br>EAデコンパイルソフトの役割を整理しておく。</p>



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



<p>重要なのは、<br><strong>復元ツールではない</strong>という点だ。</p>



<p>できるのは、</p>



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



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



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



<p>ここまで。</p>



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



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



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



<p>それは偶然ではない。</p>



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



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



<p>ここからが本題になる。</p>



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



<p>多くのEAでは、</p>



<p>売買ロジック<br>制御ロジック</p>



<p>が分離されていない。</p>



<p>口座番号チェック。<br>ブローカー制限。<br>サーバー名判定。</p>



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



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



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



<p>EAは、<br>コンパイル時のMT4ビルドに強く依存する。</p>



<p>比較的新しいビルドで作られたEX4は、</p>



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



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



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



<p>こうした現象が起きやすい。</p>



<p>これはソフトの不具合ではない。</p>



<p><strong>ビルド非対応という構造的制限</strong>だ。</p>



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



<p>EAデコンパイルソフトが出力するコードは、</p>



<p>var1<br>tmp_03<br>a7</p>



<p>といった変数だらけになる。</p>



<p>コメントはない。<br>設計意図も分からない。</p>



<p>読めるが、<br><strong>何をしているコードなのか判断できない</strong>。</p>



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



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



<p>DLL呼び出し。<br>外部ファイル。<br>サーバー通信。</p>



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



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



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



<p>多くの人がここで混同する。</p>



<p>コードが表示された。<br>だから、対応できた。</p>



<p>実際は違う。</p>



<p>重要なのは、</p>



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



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



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



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



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



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



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



<p>だが、それでも対応できないEAはある。</p>



<p>理由は同じだ。</p>



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



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



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



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



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



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



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



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



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



<p>ソフトで対応できないのは、<br>珍しいことではない。</p>



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



<p>ここが重要だ。</p>



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



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



<p>構造を理解したい。<br>設計を学びたい。</p>



<p>この場合、<br>解析だけでも十分に意味がある。</p>



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



<p>口座縛りを解除したい。<br>自分の口座で動かしたい。<br>元の挙動を維持したい。</p>



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



<p><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>よくある誤解がある。</p>



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



<p>だが、<br><strong>ツールの差よりも、EA設計の差の方が大きい。</strong></p>



<p>EAデコンパイルソフトは、</p>



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



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



<p>この位置づけが一番現実的だ。</p>



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



<p>EAデコンパイルソフトで対応できないEAには、</p>



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



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



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



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



<p>こうした特徴が重なっていることが多い。</p>



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



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



<p>それは、</p>



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



<p>だからこそ、</p>



<p>解析を続けるか。<br>実用前提で切り替えるか。</p>



<p>この判断が、<br>次の一手になる。</p>



<p>もし今、<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>静かに、<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></p>



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



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



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



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



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



<p>もし今、<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>まず前提として、このツールの立ち位置を整理しておく。</p>



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



<p>比較的有名で、<br>検索すると名前を見かけることも多い。</p>



<p>一部のEAでは、</p>



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



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



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



<p>ここまではできる。</p>



<p>だが、<br><strong>「復元できる」と「解析できる」は同じではない。</strong></p>



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



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



<p>それは偶然ではない。</p>



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



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



<p>ここからが本題になる。</p>



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



<p>このツールは、<br>対応できるMT4ビルドに限界がある。</p>



<p>比較的新しいビルドで作られたEX4は、</p>



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



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



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



<p>こうした結果になりやすい。</p>



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



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



<p>口座縛り。<br>ブローカー判定。<br>サーバー名チェック。</p>



<p>これらの制御が、</p>



<p>売買条件の中<br>エントリー条件の分岐<br>ロット計算ロジック</p>



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



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



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



<p>出力されたコードを見ると、</p>



<p>a1<br>b2<br>tmp_07</p>



<p>このような変数が並ぶ。</p>



<p>コメントもない。<br>処理の意図も読み取れない。</p>



<p><strong>読めるが、理解できない。</strong></p>



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



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



<p>DLL呼び出し。<br>外部ファイル。<br>サーバー通信。</p>



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



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



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



<p>ここで、多くの人が勘違いする。</p>



<p>コードが表示された。<br>だから、復元できた。</p>



<p>実際は違う。</p>



<p>重要なのは、</p>



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



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



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



<p>この3点だ。</p>



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



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



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



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



<p>それでも、<br>復元できないEAは復元できない。</p>



<p>理由は変わらない。</p>



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



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



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



<p>Ghidraは解析を助けるが、<br>復元を約束するものではない。</p>



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



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



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



<p>ex4-to-mq4-decompiler-5.0.1.exeで<br>復元できなかったとき、</p>



<p>「自分のやり方が悪い」<br>そう思う人は多い。</p>



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



<p>このツールで止まるのは、<br>能力不足ではない。</p>



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



<p>ここが重要だ。</p>



<p>復元できないと分かったあと、<br>次にどうするか。</p>



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



<p>構造を理解したい。<br>EA設計を学びたい。</p>



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



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



<p>口座縛りを解除したい。<br>自分の口座で動かしたい。<br>元の挙動を維持したい。</p>



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



<p><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>よくある誤解がある。</p>



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



<p>だが、<br><strong>ツールの性能以上に、EAの設計が影響する。</strong></p>



<p>このツールは、</p>



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



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



<p>そういう位置づけだ。</p>



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



<p>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>こうした特徴が重なっていることが多い。</p>



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



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



<p>それは、</p>



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



<p>だからこそ、</p>



<p>解析を続けるか。<br>実用前提で切り替えるか。</p>



<p>その判断が、<br>次の一手になる。</p>



<p>もし今、<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>静かに、<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></p>



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



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



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



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



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



<p>もし今、<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>まず、役割を正しく整理しておきたい。</p>



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



<p>重要なのはここだ。</p>



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



<p>この認識を誤ると、<br>期待と結果が大きくズレる。</p>



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



<p>使い方自体は、実はそれほど難しくない。</p>



<p>一般的な流れはこうだ。</p>



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



<p>操作としてはシンプルだ。</p>



<p>問題は、<br><strong>出力された後、どう扱うか</strong>にある。</p>



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



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



<p>if文。<br>関数定義。<br>ループ構造。</p>



<p>一見すると、<br>「これで直せそうだ」と思える。</p>



<p>だが、<br>ここで一度立ち止まったほうがいい。</p>



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



<p>出力されるコードは、</p>



<p>var1<br>var2<br>tmp_05</p>



<p>こうした名前だらけになる。</p>



<p>コメントもない。<br>設計意図も見えない。</p>



<p><strong>読めるが、理解できない</strong><br>この状態になる人が多い。</p>



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



<p>さらに、</p>



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



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



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



<p>こうした問題が起きる。</p>



<p>つまり、<br><strong>出力された時点では、完成品ではない。</strong></p>



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



<p>ここで一度、線を引いておく。</p>



<p>できることは、</p>



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



<p>できないことは、</p>



<p>完全な復元。<br>口座縛りの自動解除。<br>元EAと同じ挙動の保証。</p>



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



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



<p>多くの人がここで詰まる。</p>



<p>「コードは見えているのに、解除できない」</p>



<p>理由は単純ではないが、<br>共通点はある。</p>



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



<p>口座番号チェック。<br>ブローカー判定。<br>サーバー名制御。</p>



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



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



<p>制御を消すと、<br>EAが動かなくなる。</p>



<p>これは、</p>



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



<p>解析はできる。<br>だが、解除はできない。</p>



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



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



<p>逆アセンブルできる。<br>フローが見える。<br>解析精度は上がる。</p>



<p>それでも、<br>解除できないケースは多い。</p>



<p>理由は同じだ。</p>



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



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



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



<p>Ghidraは強力だが、<br>解除を保証するツールではない。</p>



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



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



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



<p>ここが、この記事の一番大事な部分だ。</p>



<p>「どこまで自分でやるか」<br>「どこから依頼に切り替えるか」</p>



<p>判断軸は、意外とシンプルだ。</p>



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



<p>構造を理解したい。<br>自分でEAを書き直したい。</p>



<p>この場合、<br>ex4 to mq4 decompilerは十分に役立つ。</p>



<p>時間をかける価値もある。</p>



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



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



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



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



<p><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>よくある誤解がある。</p>



<p>「もっと使いこなせば何とかなる」<br>「別のdecompilerなら解除できる」</p>



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



<p>ex4 to mq4 decompilerは、</p>



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



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



<p>この位置づけが一番正しい。</p>



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



<p>ex4 to mq4 decompilerは、</p>



<p>使い方を誤らなければ、<br>非常に有用なツールだ。</p>



<p>だが、</p>



<p>解除できるかどうかは別問題。</p>



<p>ここを混同すると、<br>無駄に時間を消耗する。</p>



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



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



<p>だからこそ、</p>



<p>解析を続けるか。<br>解除前提で切り替えるか。</p>



<p>この判断が重要になる。</p>



<p>もし今、<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>静かに、<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></p>



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



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



<p>「解析はできた」<br>でも、<br>「解除はできない」</p>



<p>ここで止まる人は、かなり多い。</p>



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



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



<p>もし今、<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>まず、言葉の整理をしておきたい。</p>



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



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



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



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



<p>これは確かに、解析ではある。</p>



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



<p>この認識のズレが、<br>最初のつまずきになる。</p>



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



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



<p>一方で、<br>解除とは何か。</p>



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



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



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



<p>これは、<br><strong>解析のその先の作業</strong>になる。</p>



<p>解析できたから解除できる、<br>という直線的な関係はない。</p>



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



<p>ここからが本題だ。</p>



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



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



<p>多くのEAでは、</p>



<p>売買ロジック<br>制御ロジック</p>



<p>これがきれいに分かれていない。</p>



<p>口座番号チェック。<br>ブローカー判定。<br>サーバー名照合。</p>



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



<p>そのため、</p>



<p>「このif文を消せばいい」<br>という単純な話にならない。</p>



<p>解析はできる。<br>だが、解除ポイントが特定できない。</p>



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



<p>EX4は、<br>コンパイル時に多くの情報を失っている。</p>



<p>意味のある変数名。<br>コメント。<br>設計時の意図。</p>



<p>デコンパイラが出力するのは、</p>



<p>var1<br>var2<br>tmp_03</p>



<p>こうした無機質なコードだ。</p>



<p>読める。<br>だが、<strong>何を意図した処理なのか分からない。</strong></p>



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



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



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



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



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



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



<p>これは、<br>制御と売買が密接に絡んでいる証拠だ。</p>



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



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



<p>ここが、少し皮肉なところだ。</p>



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



<p>「全部は読める」<br>「でも、どう直せばいいか分からない」</p>



<p>これはスキル不足ではない。</p>



<p><strong>EX4という形式の限界</strong>だ。</p>



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



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



<p>逆アセンブル。<br>構造解析。<br>フローの可視化。</p>



<p>かなり深いところまで見える。</p>



<p>だが、それでも解除できないケースは多い。</p>



<p>理由は同じだ。</p>



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



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



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



<p>Ghidraは解析を助けるが、<br>解除を保証するツールではない。</p>



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



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



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



<p>よくある誤解がある。</p>



<p>「解析できた＝解除できる」<br>「ツールを変えれば何とかなる」</p>



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



<p>デコンパイラは、</p>



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



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



<p>ここまで。</p>



<p>解除は、<br>その先の設計判断になる。</p>



<p><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>相談が多いので、<br>ここははっきり書いておく。</p>



<p>解除しやすいEAは、</p>



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



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



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



<p>逆に、解除が難しいEAは、</p>



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



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



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



<p>後者の場合、<br><strong>解析できても解除できない</strong>のは普通だ。</p>



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



<p>EX4デコンパイラで、</p>



<p>解析できた。<br>コードが見えた。</p>



<p>それ自体は、<br>間違いなく前進だ。</p>



<p>だが、<br>解除とは別工程であり、<br>同じ努力では届かない。</p>



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



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



<p>それは、</p>



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



<p>だからこそ、</p>



<p>解析を続けるか。<br>再構築を前提に切り替えるか。</p>



<p>この判断が、<br>次の一手になる。</p>



<p>もし今、<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>静かに、<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></p>



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



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



<p>今は少し違う。</p>



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



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



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



<p>もし今、<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>ex4 デコンパイル ダウンロード<br>この検索には、はっきりした心理がある。</p>



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



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



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



<p>これは自然だ。</p>



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



<p>だから、</p>



<p>検索する<br>ダウンロードする<br>実行する</p>



<p>ここまでは、ほぼ全員が同じ道を通る。</p>



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



<p>まず、冷静に整理しておきたい。</p>



<p>EX4は、<br><strong>MT4用にコンパイルされた実行ファイル</strong>だ。</p>



<p>つまり、</p>



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



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



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



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



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



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



<p>ここからが本題になる。</p>



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



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



<p>これは一番大きな誤解だ。</p>



<p>EX4からMQ4に戻すといっても、</p>



<p>変数名<br>コメント<br>作者の意図</p>



<p>これらは戻らない。</p>



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



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



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



<p>EX4は、<br>コンパイルされたMT4のビルドに強く依存する。</p>



<p>古いツールでは、</p>



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



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



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



<p>こうした現象が起きやすい。</p>



<p>これは操作ミスではない。</p>



<h3 class="wp-block-heading">制限③ 制御ロジックが分離できない</h3>



<p>口座縛り。<br>ブローカー制限。<br>サーバー判定。</p>



<p>これらが<br>売買ロジックと一体化しているEAは、<br>ツールでは切り分けられない。</p>



<p>結果として、<br>「どこを直せばいいのか分からない」状態になる。</p>



<h2 class="wp-block-heading">解析ツールを使っても残る課題</h2>



<p>EX4デコンパイルツールで止まった後、<br>さらに踏み込む人は <strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を使うことが多い。</p>



<p>逆アセンブルできる。<br>構造が追える。<br>かなり“解析している感”が出る。</p>



<p>だが、Ghidraを使っても、<br>必ず残る課題がある。</p>



<ul class="wp-block-list">
<li>MT4特有の関数構造をどう読み替えるか</li>



<li>売買ロジックと制御の境界をどう判断するか</li>



<li>最終的に動く形へどう再構築するか</li>
</ul>



<p>ここで止まる人が非常に多い。</p>



<p>Ghidraを試した後に何が壁になるのかについては、<br>こちらの記事で詳しく整理している。</p>



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



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



<p>よくあるズレがある。</p>



<p>「ツールを変えれば解決する」<br>「もっと良いダウンロード先があるはず」</p>



<p>だが実際は、<br><strong>ツールの問題ではなく、EX4の構造そのものが原因</strong>であることが多い。</p>



<p>ツールは、</p>



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



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



<p>という位置づけだ。</p>



<p>その限界を越えるには、<br>考え方を切り替える必要がある。</p>



<p><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>EX4デコンパイルツールをダウンロードする前に、<br>一度だけ自分に問いかけてほしい。</p>



<p>・目的は学習か<br>・それとも実用か</p>



<h3 class="wp-block-heading">学習目的なら</h3>



<p>構造を理解したい。<br>ロジックを読みたい。<br>自分で書き直す前提。</p>



<p>この場合、<br>ツール＋解析で止まっても問題ない。</p>



<h3 class="wp-block-heading">実用目的なら</h3>



<p>口座縛りを解除したい。<br>自分の口座で動かしたい。<br>EAをそのまま使いたい。</p>



<p>この目的なら、<br><strong>ツールで止まるのは想定内</strong>だ。</p>



<p>ここを理解していないと、<br>ダウンロード → 試行 → 停滞<br>を何度も繰り返すことになる。</p>



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



<p>EX4デコンパイルツールには、</p>



<p>できること<br>できないこと</p>



<p>がはっきり分かれている。</p>



<ul class="wp-block-list">
<li>完全復元は不可</li>



<li>ビルド依存がある</li>



<li>制御分離は難しい</li>
</ul>



<p>この制限を知らずにダウンロードすると、<br>「思ったのと違う」と感じやすい。</p>



<h2 class="wp-block-heading">まとめ｜EX4デコンパイルツールを試す前に</h2>



<p><strong>EX4デコンパイルツールは万能ではない。</strong></p>



<p>だが、<br>入口としては十分に価値がある。</p>



<p>重要なのは、</p>



<p>どこまで無料・ツールで試すか。<br>どこで考え方を切り替えるか。</p>



<p>この判断だけだ。</p>



<p>もし今、<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>静かに、<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><strong>ex4 デコンパイル 無料</strong><br>このキーワードで調べている人は、だいたい同じ場所で立ち止まっている。</p>



<p>有料は避けたい。<br>まずは無料でどこまでできるのか知りたい。<br>可能なら、自分で完結させたい。</p>



<p>そう思って、<br>EX4デコンパイルの無料ツールを探し、<br>いくつか試し、<br>それなりに時間も使った。</p>



<p>けれど、途中でこう感じ始める。</p>



<p>「これ以上、進まない」<br>「何が限界なのか分からない」<br>「依頼に切り替えるべきなのか判断できない」</p>



<p>私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>まさにこの段階の相談を多く受けてきた。</p>



<p>結論から言うと、<br><strong>EX4デコンパイルは無料でも一定ラインまでは可能だが、<br>越えられない境界もはっきり存在する。</strong></p>



<p>もし今、<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>まず前提として、<br>無料から試すのはごく自然な流れだ。</p>



<p>理由は単純。</p>



<ul class="wp-block-list">
<li>コストがかからない</li>



<li>情報が多い</li>



<li>手軽に始められる</li>
</ul>



<p>特に、<br>「EX4をMQ4に戻せたら便利そう」<br>この段階では、依頼という選択肢はまだ遠い。</p>



<p>だから、</p>



<p>無料ツール → 少し調査 → それでも無理なら次を考える</p>



<p>この順番になる。</p>



<h2 class="wp-block-heading">無料でできるEX4デコンパイルの範囲</h2>



<p>では、実際に<br><strong>EX4デコンパイルは無料でどこまで可能なのか。</strong></p>



<p>これは、かなり明確だ。</p>



<h3 class="wp-block-heading">実行構造の把握</h3>



<p>無料ツールや解析ツールを使えば、</p>



<ul class="wp-block-list">
<li>条件分岐</li>



<li>処理の流れ</li>



<li>関数の呼び出し順</li>
</ul>



<p>こうした<strong>構造レベルの把握</strong>はできる。</p>



<p>「どういう順番で動いているEAか」<br>ここまでは見える。</p>



<h3 class="wp-block-heading">ロジックの一部を推測する</h3>



<p>売買条件の断片。<br>インジケーター参照。<br>エントリーのきっかけ。</p>



<p>断片的だが、<br>ロジックの雰囲気は掴める。</p>



<p>学習目的であれば、<br>この段階でも十分な人はいる。</p>



<h2 class="wp-block-heading">無料では越えられない境界</h2>



<p>問題はここからだ。</p>



<p>無料で試している多くの人が、<br>同じ場所で止まる。</p>



<h3 class="wp-block-heading">変数名・コメントは戻らない</h3>



<p>EX4は、<br>コンパイル時に情報が削除される。</p>



<p>意味のある変数名。<br>作者のコメント。<br>設計意図。</p>



<p>これらは、<br>無料でも有料でも「元通り」にはならない。</p>



<h3 class="wp-block-heading">口座縛りなどの制御が読めない</h3>



<p>口座番号チェック。<br>ブローカー制御。<br>サーバー名判定。</p>



<p>こうした制御は、<br>売買ロジックと混ざっていることが多い。</p>



<p>無料ツールでは、<br>分離できずに止まる。</p>



<h3 class="wp-block-heading">実際に動くMQ4にはならない</h3>



<p>たとえコードが出力されても、</p>



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



<li>動作しない</li>



<li>挙動が違う</li>
</ul>



<p>この状態になるケースがほとんどだ。</p>



<p><strong>無料で「使えるEA」に戻すのは、現実的ではない。</strong></p>



<h2 class="wp-block-heading">Ghidraを使った後に見えてくる壁</h2>



<p>無料の範囲で<br>一歩踏み込む人は <strong><strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong></strong> を使うことが多い。</p>



<p>逆アセンブルできる。<br>構造が追える。<br>「解析している感」はある。</p>



<p>だが、Ghidraを使ったあと、<br>必ず次の壁にぶつかる。</p>



<ul class="wp-block-list">
<li>MT4特有の処理をどう再解釈するか</li>



<li>売買ロジックと制御をどう切り分けるか</li>



<li>最終的にどう動く形に戻すか</li>
</ul>



<p>このあたりで止まる。</p>



<p>Ghidraを使ったあとに残る課題については、<br>こちらで詳しく整理している。</p>



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



<h2 class="wp-block-heading">無料から依頼に切り替える境界はどこか</h2>



<p>ここが一番よく聞かれる。</p>



<p>「どこまで無料でやって、<br>どこから依頼に切り替えるべきか」</p>



<p>判断軸はシンプルだ。</p>



<h3 class="wp-block-heading">学習目的なら無料で十分</h3>



<p>構造を理解したい。<br>ロジックを学びたい。<br>自分で書き直すつもり。</p>



<p>この目的なら、<br>無料で止まっても問題ない。</p>



<p>時間をかければ、得るものはある。</p>



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



<p>口座縛りを解除したい。<br>自分の口座で動かしたい。<br>実戦で使いたい。</p>



<p>この目的なら、<br><strong>無料で止まった時点が切り替えの境界</strong>になる。</p>



<p>ここから先は、<br>ツールの問題ではなく、<br>再構築の問題になる。</p>



<p><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>よくある思い込みがある。</p>



<p>「無料でできるはず」<br>「もう少し調べれば何とかなる」</p>



<p>だが実際は、<br>EX4の構造そのものが、<br>そこまで親切ではない。</p>



<p>無料は、</p>



<p>入口としては優秀。<br>限界もはっきりしている。</p>



<p>その限界を越えるには、<br>発想を切り替える必要がある。</p>



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



<p>EX4デコンパイルを無料で試して止まるのは、</p>



<p>能力不足ではない。<br>やり方の問題でもない。<br><strong>構造と目的の問題</strong>だ。</p>



<p>ここを見誤ると、<br>同じところを何度も回る。</p>



<h2 class="wp-block-heading">まとめ｜EX4デコンパイル無料の現実と判断軸</h2>



<p><strong>EX4デコンパイルは無料でも一定ラインまでは可能。<br>だが、越えられない境界もはっきり存在する。</strong></p>



<p>学習なら無料でいい。<br>実用なら切り替える。</p>



<p>その判断だけだ。</p>



<p>もし今、<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>静かに、<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>
		<item>
		<title>EX4デコンパイルをフリーソフトで試して止まった場合の次の選択肢</title>
		<link>https://mt4decompile.com/ex4-decompile-free/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Tue, 23 Dec 2025 11:43:16 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=647</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-free/">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></p>



<p><strong>ex4 デコンパイル フリーソフト</strong><br>このキーワードで調べている時点で、すでに一段階は進んでいると思う。</p>



<p>いきなり依頼はしたくない。<br>まずは自分で試したい。<br>無料でどこまでいけるのか知りたい。</p>



<p>そう考えて、<br>EX4デコンパイルのフリーソフトを探し、<br>ツールを落とし、<br>解析を試みた。</p>



<p>でも、途中で止まる。</p>



<p>エラーが出る。<br>解析が進まない。<br>それらしい出力は出たが、どう扱えばいいか分からない。</p>



<p>私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>この「フリーソフトで止まった段階」の相談を数多く受けてきた。</p>



<p>結論から言うと、<br><strong>EX4デコンパイルをフリーソフトで試して止まるのは、珍しいことではない。<br>むしろ、そこまで行けたなら十分に試している。</strong></p>



<p>もし今、<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>



<h2 class="wp-block-heading">EX4デコンパイルでフリーソフトが選ばれる理由</h2>



<p>まず、なぜ多くの人がフリーソフトから試すのか。</p>



<p>理由はシンプルだ。</p>



<p>無料である。<br>導入しやすい。<br>情報がネットに出回っている。</p>



<p>特に、<br>「EX4をMQ4に戻せたら便利そうだ」<br>この段階では、コストをかける判断はしづらい。</p>



<p>だから、</p>



<ul class="wp-block-list">
<li>まずはフリーソフト</li>



<li>次に有料ツール</li>



<li>最後に依頼</li>
</ul>



<p>この順番になるのは自然だ。</p>



<h2 class="wp-block-heading">フリーソフトでEX4デコンパイルを試して止まる理由</h2>



<p>では、なぜ多くの人が途中で止まるのか。</p>



<p>これは、やり方が悪いからではない。</p>



<h3 class="wp-block-heading">EX4の構造上の限界</h3>



<p>EX4は、<br>MT4で動くための実行ファイルだ。</p>



<p>コンパイル時点で、</p>



<p>変数名<br>コメント<br>設計時の意図</p>



<p>これらは削除される。</p>



<p>フリーソフトでできるのは、<br><strong>実行構造の一部を可視化すること</strong>まで。</p>



<p>完全な復元は、そもそも想定されていない。</p>



<h3 class="wp-block-heading">新しいビルドとの相性問題</h3>



<p>現在使われているMT4ビルドで作られたEX4は、<br>古い解析ツールではうまく扱えないことが多い。</p>



<p>起動はする。<br>でも、</p>



<p>途中で止まる。<br>意味のないコードが出る。<br>解析が完走しない。</p>



<p>これは操作ミスではない。</p>



<h3 class="wp-block-heading">制御ロジックが深く組み込まれているEA</h3>



<p>口座縛り。<br>ブローカー判定。<br>サーバー名チェック。</p>



<p>こうした制御が<br>売買ロジックと一体化しているEAは、<br>フリーソフトでは構造を分離できない。</p>



<p>結果として、<br>「止まる」「読めない」「使えない」<br>という状態になる。</p>



<h2 class="wp-block-heading">Ghidraなど解析ツールを使った後に残る課題</h2>



<p>フリーソフトの中でも、<br>少し踏み込んだ人は <strong><a href="https://github.com/NationalSecurityAgency/ghidra">Ghidra</a></strong> を試すことが多い。</p>



<p>逆アセンブルできる。<br>構造を追える。<br>「プロっぽい」感じがする。</p>



<p>だが、Ghidraを使った後でも、<br>必ず残る課題がある。</p>



<ul class="wp-block-list">
<li>売買ロジックと制御の切り分け</li>



<li>MT4特有の関数構造の再解釈</li>



<li>実際に動くMQ4への再構築</li>
</ul>



<p>このあたりで止まる人が多い。</p>



<p>Ghidraを試した後に何が壁になるのかについては、<br>こちらの記事でより詳しく整理している。</p>



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



<h2 class="wp-block-heading">フリーソフトで止まったあとに考えるべき視点</h2>



<p>ここで重要なのは、<br>「もう少し別のツールを探すかどうか」ではない。</p>



<p><strong>目的をもう一度、はっきりさせること</strong>だ。</p>



<h3 class="wp-block-heading">学習・解析が目的の場合</h3>



<p>構造を理解したい。<br>ロジックを読みたい。<br>自分で書き直したい。</p>



<p>この目的なら、<br>フリーソフト＋Ghidraで止まるのは自然だ。</p>



<p>ここから先は、<br>時間と労力をどこまでかけられるか、<br>という判断になる。</p>



<h3 class="wp-block-heading">実用が目的の場合</h3>



<p>口座縛りを解除したい。<br>自分の口座でEAを動かしたい。<br>実戦で使いたい。</p>



<p>この目的なら、<br><strong>フリーソフトで止まった時点で、次の選択肢を考える段階</strong>に来ている。</p>



<p>ここを無理に粘ると、<br>時間だけが消えていく。</p>



<p><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>よくある思い込みがある。</p>



<p>「無料でできるはず」<br>「もう少し探せば方法がある」</p>



<p>だが現実は、<br><strong>EX4の構造自体が、そこまで親切ではない。</strong></p>



<p>フリーソフトは、</p>



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



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



<p>という位置づけだ。</p>



<p>その限界を超えるには、<br>発想を切り替える必要がある。</p>



<h2 class="wp-block-heading">次の選択肢は「諦め」ではない</h2>



<p>フリーソフトで止まったからといって、<br>失敗したわけではない。</p>



<p>むしろ、</p>



<ul class="wp-block-list">
<li>どこまでできるか分かった</li>



<li>自分の目的が整理できた</li>
</ul>



<p>この段階まで来ている。</p>



<p>次に進むかどうかは、<br>目的次第だ。</p>



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



<p>EX4デコンパイルをフリーソフトで試して止まるのは、</p>



<p>能力不足ではない。<br>操作ミスでもない。<br><strong>構造と目的のズレ</strong>だ。</p>



<p>ここを理解していないと、<br>同じところを何度も回ることになる。</p>



<h2 class="wp-block-heading">まとめ｜EX4デコンパイルをフリーソフトで止めた後の考え方</h2>



<p><strong>EX4デコンパイルをフリーソフトで試して止まるのは、ごく普通。</strong></p>



<p>そこまで行けたなら、<br>十分に試している。</p>



<p>あとは、</p>



<p>もう少し時間をかけるか。<br>目的に合わせて切り替えるか。</p>



<p>その判断だけだ。</p>



<p>もし今、<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>静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-free/">EX4デコンパイルをフリーソフトで試して止まった場合の次の選択肢</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EX4ファイルをMQ4に変換できない場合の現実的な解決策</title>
		<link>https://mt4decompile.com/ex4-to-mq4/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Tue, 23 Dec 2025 11:32:54 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=645</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-to-mq4/">EX4ファイルをMQ4に変換できない場合の現実的な解決策</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></p>



<p><strong>ex4 ファイルをmq4ファイルに変換</strong><br>このキーワードでここに辿り着いた人は、たいてい一度は試している。</p>



<p>EX4を手に入れた。<br>MQ4に戻せれば、設定も調整できるし、<br>ロジックも確認できるかもしれない。</p>



<p>そう思って、<br>ex4 to mq4 decompiler を探し、<br>exeを落とし、<br>実行してみた。</p>



<p>でも現実はこうだ。</p>



<p>変換できない。<br>途中で止まる。<br>コードは出たが、使えない。</p>



<p>私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>この段階で止まった人からの相談を数多く受けてきた。</p>



<p>結論から言うと、<br><strong>EX4ファイルをMQ4に変換できないケースは珍しくない。<br>そして、その場合の解決策はかなり限られている。</strong></p>



<p>もし今、<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>



<h2 class="wp-block-heading">EX4ファイルをMQ4に変換する前に理解しておくべき前提</h2>



<p>まず、ここを整理しておきたい。</p>



<p>EX4をMQ4に変換する、という表現から<br>「元のソースコードがそのまま戻る」<br>そうイメージしている人は多い。</p>



<p>だが実際は違う。</p>



<p>EX4は、<br>コンパイル済みの実行ファイルだ。</p>



<p>そこからは、</p>



<p>変数名<br>コメント<br>設計時の意図</p>



<p>こうした情報が削ぎ落とされている。</p>



<p>つまり、<br><strong>EX4→MQ4変換は復元ではなく、再構成に近い作業</strong>になる。</p>



<p>この前提を知らずにツールを探し続けると、<br>結果はあまり変わらない。</p>



<h2 class="wp-block-heading">ex4 to mq4 decompilerでできることの実際</h2>



<p>ネットでよく紹介されている<br>ex4 to mq4 decompiler。</p>



<p>確かに、<br>一部のEX4ではコードを吐き出す。</p>



<p>できるのは、主に次の範囲だ。</p>



<p>条件分岐の構造を展開する。<br>実行フローをmq4風に書き起こす。<br>ロジックの一部を可視化する。</p>



<p>ここまで。</p>



<h3 class="wp-block-heading">戻らないもの</h3>



<p>一方で、<br>次のものは戻らない。</p>



<p>意味のある変数名。<br>コメント。<br>設計思想。</p>



<p>そのため、<br><strong>コードは出たが、読めない・使えない</strong><br>という状態になる人が多い。</p>



<h2 class="wp-block-heading">EX4ファイルをMQ4に変換できない典型的な理由</h2>



<p>「どうしても変換できない」<br>そう感じるEX4には、はっきりした特徴がある。</p>



<h3 class="wp-block-heading">新しいMT4ビルドで作られている</h3>



<p>現在のMT4ビルドで作られたEX4は、<br>古いdecompilerでは対応できないことが多い。</p>



<p>exeは起動する。<br>だが、</p>



<p>何も出ない。<br>途中で止まる。<br>意味のないコードしか出ない。</p>



<p>これは操作ミスではない。</p>



<h3 class="wp-block-heading">制御ロジックが売買ロジックと一体化している</h3>



<p>口座縛り。<br>ブローカー判定。<br>サーバー名チェック。</p>



<p>これらが<br>売買条件の中に深く組み込まれているEAは、<br>単純な変換では破綻する。</p>



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



<p>DLL。<br>外部通信。<br>ファイル操作。</p>



<p>この時点で、<br>decompiler単体では再現できない。</p>



<h2 class="wp-block-heading">実体験として一度、共有しておきたいこと</h2>



<p>ここで、少し私自身の話をする。</p>



<p>正直に言うと、<br>私自身も一度、<strong>YouTube経由でEX4関連のツールを買ったことがある。</strong></p>



<p>動画では、<br>それなりに技術的な説明がされていて、<br>コメント欄も活発だった。</p>



<p>支払い方法はBTC送金のみ。<br>今思えば、この時点で一度立ち止まるべきだった。</p>



<p>指定されたアドレスにBTCを送金した。<br>トランザクションも確認できた。<br>「これで届くはずだ」と思って待った。</p>



<p>でも、<br>何も送られてこなかった。</p>



<p>メールも来ない。<br>ダウンロードリンクも来ない。<br>その後、連絡が取れることもなかった。</p>



<p>誰かを断定的に批判するつもりはない。<br>ただ、<strong>結果として何も手に入らなかった</strong>。<br>それが事実だ。</p>



<p>この経験で強く感じたのは、<br>EX4デコンパイル界隈は<br><strong>情報の非対称性がかなり大きい</strong>ということだった。</p>



<h2 class="wp-block-heading">変換できないときに考えるべき次の視点</h2>



<p>ここで、多くの人が迷う。</p>



<p>別のツールを探すべきか。<br>もう少し粘るべきか。</p>



<p>だが、この段階で重要なのは<br><strong>やり方ではなく、目的</strong>だ。</p>



<h3 class="wp-block-heading">構造を理解したい場合</h3>



<p>学習目的。<br>ロジックを理解したい。</p>



<p>この場合は、<br>デコンパイル結果を参考に<br>MQ4を一から組み直す価値はある。</p>



<h3 class="wp-block-heading">実用目的で使いたい場合</h3>



<p>口座縛りを解除したい。<br>自分の環境で動かしたい。<br>EAを実戦で使いたい。</p>



<p>この場合、<br><strong>EX4→MQ4変換にこだわる意味は薄い。</strong></p>



<p>ここが、<br>解除依頼へ切り替える判断点になる。</p>



<p>なお、この判断をする前に、<br>次の記事も一度読んでおくと整理しやすい。</p>



<p>・<a href="https://mt4decompile.com/ex4-to-mq4-decompiler-usage/">ex4 to mq4 decompilerの使い方と、解除依頼に切り替える判断点</a></p>



<p>・<a href="https://mt4decompile.com/ea-decompile-software/">ex4 to mq4 decompiler 5.0 1 exeで復元できないEAの特徴</a></p>



<h2 class="wp-block-heading">EX4→MQ4変換にこだわりすぎて起きるズレ</h2>



<p>よくある誤解がある。</p>



<p>「MQ4に戻せれば解決する」</p>



<p>実際には違う。</p>



<p>重要なのは、</p>



<p>解除できるか。<br>正しく動くか。<br>元の挙動を再現できるか。</p>



<p><strong>形式ではなく、結果</strong>だ。</p>



<p>MQ4風コードがあっても、<br>動かなければ意味はない。</p>



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



<p>EX4ファイルをMQ4に変換できない場合、</p>



<p>ツールの問題ではない。<br>操作ミスでもない。<br>EX4の構造上の問題である。</p>



<p>ここを理解していないと、<br>同じところで足踏みする。</p>



<h2 class="wp-block-heading">まとめ｜EX4ファイルをMQ4に変換できないときの現実的な考え方</h2>



<p><strong>EX4ファイルをMQ4に変換できないのは、特別なことではない。</strong></p>



<p>むしろ、<br>最近のEAほどその傾向は強い。</p>



<p>だからこそ、</p>



<p>無理に変換を続けるか。<br>目的に合わせて切り替えるか。</p>



<p>この判断が、<br>一番の近道になる。</p>



<p>もし今、<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>静かに、<br>必要な人だけが次に進めばいい。</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-to-mq4/">EX4ファイルをMQ4に変換できない場合の現実的な解決策</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EX4デコンパイルのやり方と、解除依頼が必要になるケース</title>
		<link>https://mt4decompile.com/ex4-decompile-howto/</link>
		
		<dc:creator><![CDATA[MT4解除研究所運営者]]></dc:creator>
		<pubDate>Tue, 23 Dec 2025 11:21:07 +0000</pubDate>
				<category><![CDATA[方法]]></category>
		<guid isPermaLink="false">https://mt4decompile.com/?p=642</guid>

					<description><![CDATA[<p>MT4デコンパイル診断フォーム 🔍 デコンパイル可能性を診断 5つの質問で診断します（所要時間：約1分） 診断を開始する Q1 ファイルの拡張子は何ですか? .ex4ファイル .mq4ファイル(ソースコード) その他のフ...</p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-howto/">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></p>



<p><strong>ex4 デコンパイル やり方</strong><br>このキーワードで検索している時点で、あなたはもう「何も分からない状態」ではない。</p>



<p>EAが動かない。<br>口座を変えると止まる。<br>口座縛りっぽい。</p>



<p>だからまずは、<br>自分で <strong>EX4デコンパイルのやり方</strong> を調べて、<br>ツールを試し、解析してみようと考えたはずだ。</p>



<p>それは間違っていない。<br>むしろ正しい順番だ。</p>



<p>私は <strong>EX4デコンパイルを専門に扱うエンジニア</strong>として、<br>「やり方を一通り試したあとで止まった人」を数多く見てきた。</p>



<p>その経験から言えるのは、<br><strong>EX4デコンパイルのやり方を知ることと、解除できることは別物</strong><br>という現実だ。</p>



<p>もし今、<br>「やり方は理解したのに、問題は残ったまま」<br>そんな感覚があるなら、状況はかなり典型的だ。</p>



<p>判断材料として、まず全体像を整理するだけでもいい。<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デコンパイルのやり方は、大きく2段階に分かれる</h2>



<p>EX4デコンパイルのやり方は、実はそこまで複雑ではない。<br>大きく見ると、次の2段階に分かれる。</p>



<h3 class="wp-block-heading">デコンパイルツールでコードを吐き出す</h3>



<p>最初の段階は、<br>EX4ファイルをデコンパイルツールにかけること。</p>



<p>フリーソフト。<br>海外製のEX4デコンパイラ。<br>古いMT4向けツール。</p>



<p>どれを使うかの違いはあれど、<br><strong>mq4っぽいコードを吐き出すところまでは、多くの人が到達できる。</strong></p>



<p>ここで<br>「意外とできた」<br>と感じる人も多い。</p>



<p>ただし、この時点ではまだ何も解除できていない。</p>



<h3 class="wp-block-heading">吐き出されたコードを解析・再構築する</h3>



<p>問題は、ここから先だ。</p>



<p>吐き出されたコードは、</p>



<p>変数名が壊れている。<br>コメントが消えている。<br>構造が人間向けではない。</p>



<p>つまり、<br><strong>そのままでは使えないコード</strong> になっている。</p>



<p>ここから、</p>



<p>どこが売買ロジックか。<br>どこが制御ロジックか。<br>どこで口座を判定しているか。</p>



<p>それを読み取り、組み直す必要がある。</p>



<p>ここまで含めて、<br>初めて「EX4デコンパイルのやり方を実行した」と言える。</p>



<h2 class="wp-block-heading">多くの人が止まるのは、この先</h2>



<p>相談で最も多いのは、<br>まさにこの段階で止まったケースだ。</p>



<p>ツールは動いた。<br>コードも出た。<br>でも、</p>



<ul class="wp-block-list">
<li>どこを直せばいいか分からない</li>



<li>口座縛りの判定箇所が見えない</li>



<li>触ると別の挙動がおかしくなる</li>
</ul>



<p>これは珍しいことではない。</p>



<p>なぜなら、<br><strong>デコンパイルツールは「解析」までしかしてくれない</strong>からだ。</p>



<p>解除・修正・再利用は、<br>人間側の判断と作業になる。</p>



<h2 class="wp-block-heading">EX4デコンパイルで解除できない典型パターン</h2>



<p>やり方を試しても解除できないケースには、<br>はっきりした傾向がある。</p>



<h3 class="wp-block-heading">制御ロジックが深く組み込まれている</h3>



<p>口座番号判定。<br>ブローカー判定。<br>サーバー判定。</p>



<p>これらが、<br>単独のif文で存在していないEAは多い。</p>



<p>売買ロジックと絡み合っているため、<br>単純に削るとEA全体が壊れる。</p>



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



<p>DLL通信。<br>外部ファイル。<br>サーバーアクセス。</p>



<p>こうした要素が絡むと、<br>コードだけ見ても挙動が分からない。</p>



<h3 class="wp-block-heading">修正すると別の部分が壊れる</h3>



<p>解除できたように見えても、</p>



<p>ロット計算が狂う。<br>エントリー条件がズレる。<br>決済ロジックが変わる。</p>



<p>これは、<br>制御ロジックと本体ロジックが密結合している証拠だ。</p>



<h2 class="wp-block-heading">解除依頼が必要になる判断ライン</h2>



<p>では、どこからが<br>「解除依頼を検討すべき段階」なのか。</p>



<p>目安はかなり明確だ。</p>



<h3 class="wp-block-heading">解除依頼を検討すべきケース</h3>



<ul class="wp-block-list">
<li>デコンパイルツールでコードは出た</li>



<li>構造は何となく読める</li>



<li>しかし解除ポイントが特定できない</li>



<li>修正すると挙動が崩れる</li>



<li>時間をかけても前に進まない</li>
</ul>



<p>この状態なら、<br>やり方の問題ではなく <strong>作業フェーズの問題</strong> だ。</p>



<h3 class="wp-block-heading">無理に依頼しなくていいケース</h3>



<p>一方で、</p>



<p>・設定ミス<br>・通貨ペアや時間足の勘違い<br>・EA自体が正常に動いていない</p>



<p>この場合は、<br>デコンパイル以前の問題になる。</p>



<h2 class="wp-block-heading">関連記事で整理しておきたい前提</h2>



<p>やり方を試す前後で、<br>次の記事を読んでおくと判断しやすくなる。</p>



<p>・<a href="https://mt4decompile.com/ex4-decompile-download/">EX4デコンパイルツールを試す前に知っておくべき制限</a></p>



<p>・<a href="https://mt4decompile.com/ex4-decompiler/">EX4デコンパイラで解析できても解除できない理由</a></p>



<p>どちらも、<br>「なぜやり方だけでは足りないのか」を整理した内容だ。</p>



<h2 class="wp-block-heading">自力で続けるか、依頼に切り替えるか</h2>



<p>ここまで読んで、</p>



<p>「もう一通りやり方は試した」<br>「でも解除できていない」</p>



<p>そう感じているなら、<br>今はちょうど分岐点にいる。</p>



<p>学習目的で続けるのか。<br>実用目的で切り替えるのか。</p>



<p>どちらが正解、という話ではない。</p>



<p>ただ、<br><strong>目的が“使えるEAに戻すこと”なら、<br>やり方探しはもう終わっている</strong>。</p>



<p>次の選択肢として、<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>EX4デコンパイルのやり方を試したあとに残るのは、</p>



<p>コードは出たが読めない。<br>解除ポイントが分からない。<br>修正すると別の問題が出る。</p>



<p>この3点だ。</p>



<p>ここは、<br>ツールや検索では越えにくい領域になる。</p>



<h2 class="wp-block-heading">まとめ｜EX4デコンパイルのやり方と、依頼が必要になる境界</h2>



<p><strong>EX4デコンパイルのやり方そのものは、もう難しくない。</strong></p>



<p>本当に難しいのは、<br>解除・再構築・検証まで含めて仕上げることだ。</p>



<p>どこまで自力でやるのか。<br>どこから切り替えるのか。</p>



<p>この判断ができるようになった時点で、<br>あなたはすでに「調べる側」ではなく「選ぶ側」にいる。</p>



<p>もし今、<br>「やり方は分かった。でも解除できていない」<br>そう感じているなら、立ち止まって判断していい。</p>



<p>そのための材料として、<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>静かに、<br>必要な人だけが次の段階に進めばいい。</p>



<p></p>
<p>投稿 <a href="https://mt4decompile.com/ex4-decompile-howto/">EX4デコンパイルのやり方と、解除依頼が必要になるケース</a> は <a href="https://mt4decompile.com">MT4解除研究所</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
