Spørgsmål:
ARM - Er opkaldsfunktion mulig fra eksternt statisk bibliotek?
user2578525
2015-09-01 08:23:54 UTC
view on stackexchange narkive permalink

Grundlæggende debugger jeg en lukket kilde-binær på Android, og jeg vil udføre noget af min kode imellem, som er stor nok til ikke at passe i codecave. Så er det muligt at kompilere bibliotek med min kode separat & og derefter kalde det fra mål binært? Hvis ja, hvordan?

Min ven foreslog mig at ændre binær header & udvide datasegment for at indsprøjte min kode. Er det praktisk?

Jeg har et andet forslag. Jeg kender grænsefladen til den lukkede kilde binære, er det så muligt at skrive en wrapper binær? For eksempel antager lukket kilde binær er libfoo.so. Så er det muligt at skrive en binær libbar.so, der faktisk indlæser libfoo.so & sender funktionsopkald til libfoo.so

Jeg spørger dette, fordi jeg har set nogle warez-programmer samlet med nogle ekstra dll'er & ofte en wrapper eksekverbar.

To svar:
diff
2015-11-02 11:12:48 UTC
view on stackexchange narkive permalink

"Indpakning" er bestemt mulig, en af ​​de teknikker, jeg normalt bruger til Android reverse engineering er "shimming" binær. I det væsentlige skriver du en lille applikation, enten Java / Application-baseret eller C / Native-baseret. Et eksempel på at gøre dette er her;

https://github.com/rednaga/native-shim

Dette giver dig mulighed for at kalde enhver metode, du gerne med mindre ændringer.

w s
2015-09-01 10:29:36 UTC
view on stackexchange narkive permalink

Hvis dette bibliotek er linket statisk, kan du ikke ændre det uden at ændre den eksekverbare fil. Du kan dog bruge Frida under fejlretningssession til at opfange specifikke opkald, automatisere denne opgave og køre din egen kode skrevet i (overraskelse!) JavaScript.

Se simpelt eksempel her for flere detaljer.



Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...