보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

처음 Private Key를 생성하고 나면 거의 활용할 때가 없는데..... 

한번씩 Vm에서 테스트할때되면 필요하게 되어 메모해 둔다.

1. 개인키 생성

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

 

2. 개인키로 서명

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [my-release-key.keystore] [my_application.apk] [alias_name]

 

3. 개발자키로 서명

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [debug.keystore 위치] [서명할 앱] androiddebugkey

 

패스워드는 android

Posted by 워니후니빠
,

1. Requirement

chall03 메소드에서 True를 반환할 것

* 현재는 0 값을 반환하고 있음

 

2. Write UP

반환값을 수정해야 하는 메소드는 MainActivity 안에 있으며,

해당 메소드는 Java.use와 Java.choose 함수 모두 가능하다.

 

2.1. Frida 스크립트로 실행

2.1.1. Java.use

//Lab3_1.js
Java.perform(function(){
    console.log("[*]Starting Script!");
    var main;
    main = Java.use('uk.rossmarks.fridalab.MainActivity');
    main.chall03.implementation = function () {
        console.log('\n[*]Solved Challenge 3!!!!');
        return true;
    }
});

 프리다 실행 명령어를 통하여 스크립스 실행 : Frida -U -l Lab3_1.js uk.rossmarks.fridalab

2.1.2. Java.choose

//Lab3.js
Java.perform(function(){
    console.log("[*]Starting Script!");
    var main;
    Java.choose('uk.rossmarks.fridalab.MainActivity', {
    onMatch : function(instance){
        main = instance;
        console.log("Instance Matched!!");
        }, 
    onComplete : function(){
        console.log('[*]Callback functions are called!!!!');
        }        
    });
    main.chall03.overload().implementation = function () {
        console.log('\n[*]Solved Challenge 3!!!!');
        return true;
    }
});

 프리다 실행 명령어를 통하여 스크립스 실행 : Frida -U -l Lab3.js uk.rossmarks.fridalab

2.2. Python 스크립트로 실행

2.2.1. Java.use

//Lab3.py
import frida
import sys

jscode = """        
Java.perform(function(){ console.log("[*]Starting Script!"); 
var main; main = Java.use('uk.rossmarks.fridalab.MainActivity'); 
main.chall03.implementation = function () { 
    console.log('[*]Solved Challenge 3!!!!'); return true;
    } 
});
"""

process = frida.get_usb_device(1).attach('uk.rossmarks.fridalab')
script = process.create_script(jscode)
script.load()
print("Please Press Check!!")
input()

 Python 실행 명령어를 통하여 스크립스 실행 : python Lab3.py

2.2.2. Java.choose

//Lab3_1.py
import frida
import sys

jscode = """        
Java.perform(function(){
    console.log("[*]Starting Script!");
    var main;
    Java.choose('uk.rossmarks.fridalab.MainActivity', {
    onMatch : function(instance){
        main = instance;
        console.log("Instance Matched!!");
        }, 
    onComplete : function(){
        console.log('[*]Callback functions are called!!!!');
        }        
    });
    
    main.chall03.overload().implementation = function () {
        console.log('[*]Solved Challenge!!!!');
        return true;
    }
});
"""

process = frida.get_usb_device(1).attach('uk.rossmarks.fridalab')
script = process.create_script(jscode)
script.load()
print("Please Press Check!!")
input()

 Python 실행 명령어를 통하여 스크립스 실행 : python Lab3_1.py

'Android' 카테고리의 다른 글

FridaLab_frida challenge 2 풀이  (0) 2020.10.25
Frida 문법  (0) 2020.10.24
APK 서명(인증서 생성 및 서명)  (0) 2020.10.03
Toast 팝업 Smali 코드  (0) 2020.10.03
Ubuntu에 APMSetup 설치  (0) 2015.03.04
Posted by 워니후니빠
,