Featured image of post AltServer.exe「プロシージャ エントリ ポイント xmlBufContent がダイナミック リンク ライブラリ libxslt.dll から見つかりませんでした」の原因と解決策【Windows】

AltServer.exe「プロシージャ エントリ ポイント xmlBufContent がダイナミック リンク ライブラリ libxslt.dll から見つかりませんでした」の原因と解決策【Windows】

この記事は ChatGPT を用いて執筆しています。 ただし、実際の切り分け・検証・判断は手元の Windows 環境で行った結果に基づいており、内容は実体験ベースで整理しています。

AltServer を起動しようとしたところ、以下のエラーが表示されて起動できなくなりました。

1
2
3
AltServer.exe - エントリ ポイントが見つかりません
プロシージャ エントリ ポイント xmlBufContent がダイナミック リンク ライブラリ
C:\Program Files (x86)\Common Files\Apple\Apple Application Support\libxslt.dll から見つかりませんでした。

一見すると Apple Application Support の libxslt.dll が壊れているように見えます。しかし、最終的な原因は C:\Windows\libxml2.dll が AltServer に誤って読み込まれていたこと でした。

この記事では、まず最初に 「何が起きていたのか」と「どう直したのか」 を簡潔にまとめ、その後で詳細な経緯と切り分けを書きます。急いでいる方は「トラブルの概要」と「解決策」だけ読めば十分です。

トラブルの概要

発生した症状

AltServer 起動時に、次のような DLL のエントリポイントエラーが発生して起動できませんでした。

1
2
3
AltServer.exe - エントリ ポイントが見つかりません
プロシージャ エントリ ポイント xmlBufContent がダイナミック リンク ライブラリ
C:\Program Files (x86)\Common Files\Apple\Apple Application Support\libxslt.dll から見つかりませんでした。

一見したときの誤解しやすいポイント

このエラー文だけ見ると、どうしても次のように考えがちです。

  • AltServer 自体の更新不具合
  • Apple Application Support の破損
  • iTunes / iCloud のインストール不整合
  • AltStore / AltServer の既知不具合

実際、自分も最初はこの方向で疑いました。特にエラーメッセージに libxslt.dll のパスがはっきり出ているため、Apple 側の DLL が壊れているようにしか見えません。

しかし、実態は少し違いました。

実際の原因

AltServer が Apple の libxml2.dll ではなく、C:\Windows\libxml2.dll を先に読み込んでしまっていた のが原因でした。

その状態で、Apple 側の libxslt.dll が読み込まれたため、

  • libxslt.dll は Apple 系ライブラリ同士の組み合わせを期待している
  • しかし実際には別物の libxml2.dll がすでに読み込まれている
  • その結果、xmlBufContent が見つからずエラーになる

という流れになっていました。

要するに、Apple の DLL が単純に壊れていたのではなく、DLL の読み込み先が汚染されていた というのが真相です。

解決策

結論

C:\Windows\libxml2.dll を退避またはリネームすることで解決しました。

自分の環境では、これだけで AltServer が正常起動しました。

手順

まず、管理者権限の PowerShell を起動します。

以下でファイルの存在を確認します。

1
Get-Item "C:\Windows\libxml2.dll" | Format-List FullName, Length, LastWriteTime

問題のファイルが存在することを確認したら、バックアップを取ったうえでリネームします。

1
2
Copy-Item "C:\Windows\libxml2.dll" "C:\Windows\libxml2.dll.backup"
Rename-Item "C:\Windows\libxml2.dll" "libxml2.dll.disabled"

あるいは、バックアップが不要なら単純にリネームだけでもよいです。

1
Rename-Item "C:\Windows\libxml2.dll" "libxml2.dll.bak"

その後、Windows を再起動し、AltServer を再度起動します。

重要な注意点

  • いきなり削除するより、まずはリネーム推奨です。何か別アプリが本当に必要としていた場合でも戻しやすいためです。
  • C:\Windows\libxml2.dll は通常の Windows 標準ファイルとして認識しているわけではないため、少なくとも自分の環境では「そこにあること自体が不自然」でした。
  • このファイルの出どころは環境によって異なる可能性があります。自分の環境では、後述の通り別アプリ由来の可能性が高いと判断しました。

最短のまとめ

同じエラーに遭遇していて、かつ次の条件に当てはまるなら、かなり高確率で同じ原因です。

  • AltServer 起動時に xmlBufContent エラーが出る
  • Apple Application Support の再インストールでも直らない
  • C:\Windows\libxml2.dll が存在する

この場合は、C:\Windows\libxml2.dll の混入をまず疑ってください。

経緯や切り分け

ここからは、実際にどう切り分けていったかを詳しく書きます。結論だけ知りたい方はここから先を飛ばして構いません。

1. まずは Apple 側の破損を疑った

最初に見たエラーはこれです。

1
2
3
AltServer.exe - エントリ ポイントが見つかりません
プロシージャ エントリ ポイント xmlBufContent がダイナミック リンク ライブラリ
C:\Program Files (x86)\Common Files\Apple\Apple Application Support\libxslt.dll から見つかりませんでした。

この文面だけを見ると、原因候補として自然なのは以下です。

  • libxslt.dll が壊れている
  • Apple Application Support のインストールが壊れている
  • iTunes / iCloud の再インストール不足
  • AltServer の更新で依存関係が変わった

実際、自分も Apple 側を重点的に疑いました。エラーメッセージがそこへ誘導してくるので当然です。

2. iTunes / iCloud / Apple 関連コンポーネントの再インストールを実施

まずは定番の再インストールを試しました。

  • iTunes の入れ直し
  • iCloud の入れ直し
  • Apple 関連コンポーネントのアンインストール / 再インストール
  • AltStore / AltServer のアンインストール / 再インストール

この過程では iCloud のアンインストールが正常に通らないなど、別のトラブルにも遭遇しました。

たとえば次のような状態です。

  • iCloud のアンインストール時に Windows Installer 系のエラーが出る
  • iCloud が「サインイン中なのでアンインストールできない」と表示する
  • しかし実際には iCloud のプロセスが見当たらず、アプリもまともに開けない

このため、当初は Apple / MSI / Windows Installer 周りの破損をかなり疑いました。

3. ただし再インストールしても症状は改善しなかった

再インストールが一通り終わっても、症状は変わりませんでした。

つまり、少なくとも次の可能性は低くなっていきます。

  • 単純な再インストール不足
  • 単純な Apple Application Support の破損
  • AltServer 本体だけの破損

ここで「表面に出ている DLL そのもの」ではなく、その DLL がどう読み込まれているのか を見ないと進まないと判断しました。

4. 別 PC で比較した

次に、正常動作している別 PC と比較しました。

比較結果は次の通りです。

  • 別 PC では、AltStore / AltServer をアップデート後も正常動作する
  • その別 PC で使っている iCloud / iTunes をこちらの PC に持ってきても症状は再発する
  • 別 PC の Apple Application Support の中身を丸ごとコピーしても症状は変わらない
  • AltStore / AltServer をアンインストールして再インストールしても改善しない

この時点で、かなり重要なことが分かります。

分かったこと

  1. AltServer 1.7.x 系が必ず壊れるわけではない

    • 別 PC では動いているため
  2. Apple 配布物のバージョンそのものが主犯ではなさそう

    • 正常動作している PC と同じ材料を使っても再発するため
  3. Apple Application Support の実体ファイルだけを差し替えても直らない

    • つまり DLL ファイルそのものの破損だけでは説明しにくい

ここで、「Apple 側ではなく、この PC 固有の DLL 検索順や残存ファイルの問題ではないか」という仮説が強くなりました。

5. AltServer 本体の配置や残骸を確認した

まずは AltServer が複数箇所に存在していないかを確認しました。

1
2
Get-ChildItem -Path C:\ -Filter AltServer.exe -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, Length, LastWriteTime

結果は次の通りで、AltServer.exe 自体は一箇所だけでした。

1
C:\Program Files (x86)\AltServer\AltServer.exe

続いて、AltServer 関連のフォルダも確認しました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$paths = @(
  "$env:ProgramFiles\AltServer",
  "${env:ProgramFiles(x86)}\AltServer",
  "$env:LocalAppData\Programs\AltServer",
  "$env:AppData\AltServer",
  "$env:LocalAppData\AltServer"
)

$paths | ForEach-Object {
  if (Test-Path $_) {
    Get-ChildItem $_ -Force | Select-Object FullName, Length, LastWriteTime
  }
}

ここでも、少なくとも「複数の AltServer.exe が別の場所で起動している」という状況ではありませんでした。

6. libxml2.dlllibxslt.dll の所在を全探索した

次に、システム全体で libxml2.dlllibxslt.dll がどこにあるかを調べました。

1
2
3
4
5
Get-ChildItem C:\ -Filter libxml2.dll -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, Length, LastWriteTime

Get-ChildItem C:\ -Filter libxslt.dll -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, Length, LastWriteTime

結果として、かなり多くの libxml2.dll / libxslt.dll が存在していました。たとえば以下のようなものです。

  • C:\Program Files\Blackmagic Design\DaVinci Resolve\libxml2.dll
  • C:\Program Files\Common Files\Apple\Apple Application Support\libxml2.dll
  • C:\Program Files\iTunes\libxml2.dll
  • C:\Program Files\Wireshark\libxml2.dll
  • C:\Program Files (x86)\etax\libxml2.dll
  • C:\Windows\libxml2.dll

この中で特に不自然だったのが、C:\Windows\libxml2.dll の存在です。

C:\Windows\libxml2.dll は、少なくとも自分の感覚ではかなり異様でした。しかも、サイズを見ると C:\Program Files (x86)\etax\libxml2.dll とかなり近く、何らかのアプリケーションが Windows 直下にコピーした可能性を疑いました。

ただし、この時点ではまだ「怪しい」というだけで、犯人と断定はできません。

7. Procmon で AltServer 起動時の DLL 読み込みを確認した

ここが最大の転機でした。

Process Monitor(Procmon)で AltServer 起動時の挙動を記録し、CSV に出力して DLL 読み込み順を確認しました。

その結果、AltServer 起動時に libxml2.dll を探す流れがはっきり見えました。

概ね次のような順番です。

1
2
3
4
C:\Program Files (x86)\AltServer\libxml2.dll        -> NAME NOT FOUND
C:\Windows\SysWOW64\libxml2.dll                    -> NAME NOT FOUND
C:\Windows\System\libxml2.dll                      -> NAME NOT FOUND
C:\Windows\libxml2.dll                              -> SUCCESS / Load Image

その後、Apple 側の libxslt.dll が読み込まれていました。

1
C:\Program Files (x86)\Common Files\Apple\Apple Application Support\libxslt.dll -> SUCCESS / Load Image

これが決定打でした。

8. 何が起きていたのか

ここで起きていたことを整理すると、次の通りです。

  1. AltServer は起動時に libxml2.dll を探す
  2. AltServer のフォルダ内には libxml2.dll が存在しない
  3. そのため DLL 検索順に従って別の場所を探す
  4. 最終的に C:\Windows\libxml2.dll を読み込んでしまう
  5. その後、Apple Application Support 配下の libxslt.dll を読み込む
  6. しかし libxslt.dll は Apple 系の libxml2.dll との組み合わせを前提にしている
  7. 先に読み込まれているのは別物の C:\Windows\libxml2.dll
  8. その結果、xmlBufContent が見つからずにエラーになる

つまり、表面的には libxslt.dll のエラーに見えても、実際には その前に読み込まれた libxml2.dll が違っていた ことが本質です。

9. 実際の対処

対処はシンプルでした。

1
Rename-Item "C:\Windows\libxml2.dll" "libxml2.dll.bak"

あるいは安全のためにバックアップを取ってからでも構いません。

1
2
Copy-Item "C:\Windows\libxml2.dll" "C:\Windows\libxml2.dll.backup"
Rename-Item "C:\Windows\libxml2.dll" "libxml2.dll.disabled"

その後、再起動して AltServer を起動したところ、正常に起動しました。

10. 今回の結論

今回の件は、次のように整理できます。

事象の表面

  • AltServer の更新や Apple Application Support の破損に見える
  • エラーメッセージ上も libxslt.dll が名指しされている

実際の原因

  • C:\Windows\libxml2.dll が AltServer に先に読み込まれていた
  • その結果、Apple の libxslt.dll と ABI / エクスポート整合が取れず xmlBufContent エラーになった

実務的な見立て

  • AltServer の一般不具合というより、この PC 固有の DLL 汚染 に近い
  • ただし、表面上は Apple 側の DLL にしか見えないため、かなりハマりやすい
  • 単純な再インストールでは直らず、DLL の読み込み実態を見ないと辿り着きにくい

11. 同じエラーに遭遇した人向けの確認ポイント

同様の症状に遭遇した場合、次の順で確認すると効率がよいと思います。

まず確認したいこと

1
2
Get-ChildItem C:\ -Filter libxml2.dll -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, Length, LastWriteTime

ここで C:\Windows\libxml2.dll が出てきたら要注意です。

次にやること

  • Procmon で AltServer 起動時の Load Image を確認する
  • libxml2.dll をどこから読んでいるか見る
  • Apple 側の libxslt.dll と組み合わさっていないか確認する

いきなり遠回りしなくてよいもの

今回のケースに限れば、次の作業はかなり遠回りでした。

  • iTunes / iCloud の何度も再インストール
  • Apple Application Support の丸ごと差し替え
  • AltServer の単純な再インストールの繰り返し

もちろん環境によっては意味がありますが、C:\Windows\libxml2.dll のような不審な DLL があるなら、まずそこを疑う方が早いです。

まとめ

今回のトラブルは、表面上は Apple Application Support の libxslt.dll が悪いように見えるものの、実際には C:\Windows\libxml2.dll の混入による DLL 読み込み競合 が原因でした。

解決策は、問題の C:\Windows\libxml2.dll を退避・リネームして、AltServer に誤って読ませないことです。

AltServer や Apple 関連コンポーネントをいくら再インストールしても直らない場合、エラーに表示されている DLL だけを見ていては辿り着けないことがあります。今回のように、Procmon で「実際に何を読んでいるか」を見るのが決定打になるケースがあります。

同じエラーで困っている方の参考になれば幸いです。

cc-by
特に記載のない限り、このサイトのコンテンツは CC BY-NC-SA 4.0 の下で提供されています。ライセンス詳細
Hugo で構築されています。
テーマ StackJimmy によって設計されています。