C++で作ったSOファイルの解析方法 – プログラミング – Home

C++で作ったSOファイルの解析方法
 
通知
すべてクリア

[解決済] C++で作ったSOファイルの解析方法


ねむい
 ねむい
(@ねむい)
ゲスト
結合: 9年前
投稿: 2
Topic starter  

Windows7 64bitを使用しております。

android ndkにおいて、C++で作ったSOファイルの解析方法を探しております。

特に、

・C++コードに記載した定数等が、SOファイルの解析により、どのように表面化されてし
まうか。

・SOファイルから元のコードの流れを、どの程度追えるのか

を確認したいのです。

どのような方法がありますでしょうか。

よろしくお願いいたします。


引用未解決
トピックタグ
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

 androidはもともとは確か、LINUXですよね。
Windows環境というよりは、freeUNIX環境上でどれだけ解析できるかですね。
Cygwin等を使ってどこまでいくかですね。


返信引用
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

*.soは、Windowsでは*.dllに相当します。
要はライブラリファイルなので実行ファイルです。当然中身はバイナリです。
従って、元のソースに記述されていた情報の内、実行に不要な部分は失われています。
たとえば#defienされた定数などは参照された位置でバイナリの直値として使われて
いると予測できます。

ツールを使えばライブラリにエントリされている関数(ないしシンボル)の一覧などは取得
できます。
対象CPUに詳しければダンプや逆アセンブルすることによって、
その他の情報も取得可能かもしれません。
ただし、高い能力を持つプログラマでも、バイナリから元のコードを
完全に再現することは本質的に不可能です。
つまり、断片的な動作を除けば、元のコードの内容を知るのはほぼ不可能と断言できます

以上の情報とキーワードを元にぐぐればもう少し詳しい情報が見つけられるでしょう。
たとえばreadelf等ですね。


返信引用
ねむい
 ねむい
(@ねむい)
ゲスト
結合: 9年前
投稿: 2
Topic starter  

ご返答、ありがとうございます。
VMware PlayerとCent OSをインストールし、soファイルの中身を一部ですが見ることがで
きました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました