TODO: LIEF-project

Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ парсингу Π±ΠΈΠ½Π°Ρ€Π΅ΠΉ, Π² Ρ‚ΠΎΠΌ числС ΠΈ DEX, APK, ODEX, OAT, ...

ΠœΠΈΠ½ΡƒΡΡ‹: Π½Π΅ достаСт поля, Π½Π΅ строит xrefs

Но Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

from pathlib import Path
import lief

# Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ DEX Π² LIEF
lief_dex_file = lief.DEX.parse('classes2.dex')
lief_odex_file = lief.OAT.parse('base.odex')

CLASS_NAME = 'Lcom/example/SomeClass$SomeOtherClass;'
if lief_dex_file.has_class(CLASS_NAME):
    lief_dex_class = lief_dex_file.get_class(CLASS_NAME)

    if lief_dex_class.parent.pretty_name == 'com.google.protobuf.GeneratedMessageLite':

        for method in lief_dex_class.methods:
            print(method)

Last updated

Was this helpful?