マルウェアモジュールのメモリダンプを分析する必要があります。残念ながら、サンプルは元のdllではなく、メモリからのdllのダンプです。
セクションヘッダーを修正しました
はかなり簡単です-仮想アドレス\サイズ
を生アドレス\サイズ
に一致させる必要があります。これは、PEがメモリにロードされると取得されるものだからです(これはダンプの場合です)
しかし、別の問題があります。たとえば、IDA-PROでファイルを開くと、メモリが正しく配置されていないため、分析が正しくなく、すべての相対アドレスを使用した呼び出し
関数は正しく機能します(正しい場所、またはPEサイズの観点から意味のある場所を指していません)
リベースの解決策のように感じますidaのPEは不完全であり、必要に応じてすべてを修正するわけではありません。また、後でollydbgを使用して動的にロードできるようにPEを修正したいと思います(元のPEがあるかのように)
だから私の質問は:どのように正確にPEヘッダーを修正し、プログラムをリベースして、正常にロードできるようにすることをお勧めしますか?
VirusTotal-Intelligenceユーザーの場合、サンプルMD5は次のとおりです。 : https://www.hybrid-analysis.com/search?query=vxfamily%3AGen:Variant.Terkcop
2015_12_08_ExtraInfo :@ ubnix、あなたが送ってくれた資料の内容をまだ読んでいませんが、IATの重要性をよく知っています-ちなみに、これはIDAにファイルをロードするときの問題です。
dllはアドレス0x10000000にロードされます(したがって、すべてのセクションは0x10001000にロードされます-サイズなどに応じて、それぞれ0x10000000以降です。)
マルウェアのコードは、IATが0x05320000にあることを想定しています。明らかにそうではありません。 IDA-PROを試してIATセグメントの場所を変更しようとすると(思い出すとCtrl + SまたはALT + S)、IDAクライアントがクラッシュします。
明らかに、アドレスの変更は、IDA proでマルウェアを静的に確認するための一時的な解決策としてのみ機能し、ollydbgを使用してマルウェアを実行するための解決策としては機能しません。 ollyでマルウェアを実行したい場合は、どういうわけかdllを0x5320000の正しいアドレスで実行する必要があります
PEのBaseAddressを0x10000000から目的のアドレスに変更する場合(CFF Explorerを使用) )、それはまだollydbgで0x10000000でロードされています。理由はわかりません
Edit22015_12_15 :サンプルの例私は彼のヘッダーを「修正」しましたが、それでも正しく機能していません(すべてのCRT機能の問題)
サンプルを修正した後: https://www.dropbox.com/s/6dz7athzdja94p4/53_fixed_rebase.dll?dl=0
これらのファイルは両方ともマルウェアのサンプルであり、アンチウイルスが警告を発する可能性があります。
修正したサンプルは間違いなくより適切に機能しており、idaはすべての機能を即座に認識できますが、CRTの機能または機能しかないため、何かを見逃したと思います。といった 「初期化操作」(c ++クラスの初期化など)が失敗しています。