본문 바로가기
보안 및 개발/MOBILE

[Android] so파일 로드하는 sample app

by CH@3M 2020. 4. 16.

단순히 so파일만 분석하기 위해 so파일을 로드하는 샘플 앱을 만들고자 했다.

activity_main.xml

package com.example.girosample;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity{
    private Button btn;

    private View view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button) findViewById(R.id.button);
    }


    public void BtnonClick(View v) {
        TextView textView = (TextView) findViewById(R.id.textView);
        textView.setText("complete");
        System.loadLibrary("dxbase");
    }
}
​

라이브러리명을 넣을땐 lib, .so를 빼고 써주면 알아서 인식한다! 그냥 Load 함수를 쓸때는 다 써줘야한다. 둘의 차이는 이 정도로만 알고 있다.

MainActivity.java

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Load"
        android:onClick="BtnonClick"
        tools:layout_editor_absoluteX="161dp"
        tools:layout_editor_absoluteY="288dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

so파일을 넣어주는 폴더이름을 잘 설정해서 넣어주기 ㅎㅎ (2020/04 기준)

ARM 64bits의 경우

> C:\Users\chaem\AndroidStudioProjects\girosample\app\src\main\jniLibs\arm64-v8a\

ARM 32bits의 경우

> armeabi-v7a

 

 

so파일에 java랑 연동되는 부분이 있으면 그 함수들도 추가적으로 넣어줘야한드아... ~.~ 

 

반응형

'보안 및 개발 > MOBILE' 카테고리의 다른 글

adb: Failure [INSTALL_FAILED_VERIFICATION_FAILURE]  (0) 2020.04.20
Frida 기본 설명  (0) 2020.04.20
[Frida] trace  (0) 2020.03.26
화면캡쳐 우회  (0) 2020.03.18
[Android] Burp Suite CA인증서 관련 정리  (0) 2020.03.17