fake.so 파일을 libil2cpp.so 로 덮어버리는 스크립트

홈 > 안드로이드 > 안드로이드 > FRIDA
안드로이드

fake.so 파일을 libil2cpp.so 로 덮어버리는 스크립트

9 BeastB 21 8951 2

사용되는 상황으로는 


암호화 되거나 패킹된 libil2cpp.so 와 global_metadata 를 복호화한 후 수정하거나,


다른 방법으로 수정된 libil2cpp.so 를 만들었다고 가정했을때


특정 부분에서 암호화 되거나 패킹된 libil2cpp.so 를 복호화하는 부분을 후킹 하고 난 다음. 


아래의 스크립트를 활용해서 fake.so를 libil2cpp.so 로 교체할 수 있습니다.


아래 스크립트의 동작의 예는


/data/local/tmp/fake.so 파일을 복사해서 /data/data/com.blah.blah.blah/libil2cpp.so 로 덮습니다.


이때 /data/local/tmp/fake.so 의 권한을 한번 확인해보시는게 좋습니다.


0149ed925237c2a8daee6a6722b5da2a_1598452268_2851.png
 

저같은경우는 덮을때 /data/local/tmp/fake.so 권한에러가 발생한 적이 있습니다.


Java.perform(function(){

    const File = Java.use('java.io.File');

    const FileInputStream = Java.use('java.io.FileInputStream');

    const FileOutputStream = Java.use('java.io.FileOutputStream');

    const FileChannel = Java.use('java.nio.channels.FileChannel');


    var oriFile = File.$new.overload('java.lang.String').call(File, '/data/local/tmp/fake.so');

    if (oriFile.exists() && oriFile.canRead()) {

        var targetFile = File.$new.overload('java.lang.String').call(File, '/data/data/com.blah.blah.blah/libil2cpp.so');

        var fileInputStream = FileInputStream.$new.overload('java.io.File').call(FileInputStream, oriFile);

        var fileOutputStream = FileOutputStream.$new.overload('java.io.File').call(FileOutputStream, targetFile);

        var fileInputStreamChannel = fileInputStream.getChannel();

        var fileOutputStreamChannel = fileOutputStream.getChannel();

        fileInputStreamChannel.transferTo(0, fileInputStreamChannel.size(), fileOutputStreamChannel);

        fileInputStream.close();

        fileOutputStream.close();

    }       

    else {

        console.log('Error : File cannot read.')

    }                         

})


PS. 여담인데 제가 잘 몰라서그런거일 수도 있는데. 


NOX 플레이어 최신버전 (6.6.1.2)을 설치하니까 ROOT사용을 안함으로 체크한 상태에서도 ADB SHELL 에서 ROOT 권한을 얻을 수 있네요


모든 에뮬레이터들이 다 그런가요???


신기하네요 ㅋㅋ

21 Comments
2 Bphomet 2020.09.14 18:15  
와오 저런 방법이... 신기하네요
1 jtrwns 2020.10.06 00:13  
이걸 이용하면 원하는 부분으로 수정할 수 있는지요? 너무 신기합니다..,.!
1 jjoonn 2020.10.24 22:03  
감사합니다
1 jeniaro 2020.11.08 03:22  
감사합니다
1 uijin 2020.11.12 11:47  
감사합니다
2 yum123 2020.11.14 10:59  
감사합니다
1 멍멍이이삼 2020.11.14 23:47  
감사합니다
1 대교연 2021.01.06 18:51  
감사합니다
1 웬리이 2021.01.14 16:49  
감사합니다
2 나이마 2021.01.23 17:44  
감사합니다!
1 푸른눈의백룡 2021.01.26 15:55  
감사합니다

Congratulation! You win the 1 축하드립니다! 당첨되셨어요~!

2 iank 2021.01.31 03:29  
감사합니다
5 킹왕짱 2021.01.31 14:47  
고급 기술이네요 멋집니다
1 omng 2021.02.04 08:37  
감사합니다
1 kyo23 2021.02.08 16:21  
감사합니다
1 Erika1 2021.02.20 12:08  
감사합니다
1 김유빈 2021.02.25 01:30  
감사합니다
1 김유빈 2021.02.25 01:30  
감사합니다
1 응애 2021.03.05 15:26  
신기하네요
1 TTCL 2021.03.16 03:24  
감사합니다 ㅎㅎ
1 공부하는자 2022.03.21 09:07  
오..어렵네요 감사합니다