악성앱 분석하고 있는 학생입니다.
자바의 native 메소드는 C에서 구현될때 함수명이 카멜인덱싱이라는 네이밍기법을 통해 명명되어야 한다고 알고 있습니다만,
본 질문의 경우엔 그렇지 않기에 질문 드려 봅니다.

예를 들어, 위의 코드는 아래의 코드의 함수명으로 작성되어야 연결되는 것으로 알고 있습니다.

제가 궁금한것은 위의 경우가 아니어도 Java / C 간 연동이 가능하냐는 것입니다.
다음은 제가 보고있는 중국의 한 악성앱의 소스중 일부 입니다.

위와 같이 메소드들을 만들어 놨네요.. 위에서 등장한 secexe.so 파일을 Ida라는 툴로 디컴파일 해보았습니다.
메소드 리스트들을 보여드릴게요






없습니다ㅠㅠ
.rodata 섹션쪽에 보면 base64로 인코딩된 수많은 문자열들이 있는데 일반적이지 않은 포맷을 사용 했는지 디코딩이 안되어 확인은 못했습니다. 아마 위에 함수 리스트들중에 의미없는 이상한 문자열을 사용하는 함수랑 뭔가 연관이 있는 것 같긴 한데 말입니다..
이게 가능한가요?
추가로 악성앱을 다운 받을 수 있는 링크 포함합니다.
악성앱 링크입니다. 설치시 문제에 대한 책임은 본인에게 있습니다.
http://www.apk.anzhi.com/data1/apk/201312/12/com.ihandysoft.ledflashlight.ganpipa_56262300.apk
+ 참고, 추가로 또 다른 악성앱 에서는 포인터함수를 이용하여 구현한 모습을 볼수 있었습니다.

아래의 코드와 연결됩니다.(되는것으로 추정) (스샷으로 올리려 했는데 개수 제한에 걸렸네요..)
.data:0001A3DC DCD aIiiiBV ; "(IIII[B)V"
.data:0001A3E0 DCD java_native_api_main_NetworkHandler
.data:0001A3E4 DCD aA ; "a"
.data:0001A3E8 DCD aIV ; "(I)V"
.data:0001A3EC DCD java_native_api_main_TimerHandler
.data:0001A3F0 DCD aA ; "a"
.data:0001A3F4 DCD aLjavaLangObjec ; "(Ljava/lang/Object;)V"
.data:0001A3F8 DCD java_native_api_daemon_StartService
.data:0001A3FC DCD aA ; "a"
.data:0001A400 DCD aLjavaLangObjec ; "(Ljava/lang/Object;)V"
.data:0001A404 DCD java_native_api_smsservice_StartSmsService
.data:0001A408 DCD aA ; "a"
.data:0001A40C DCD aLjavaLangStr_5 ; "(Ljava/lang/String;Ljava/lang/String;)V"...
.data:0001A410 DCD java_native_api_smsservice_SMSService
.data:0001A414 EXPORT g_szJavaLangStringZ
.data:0001A414 g_szJavaLangStringZ DCD aLjavaLangStr_8 ; DATA XREF: moon_is_file_exist+50r
.data:0001A414 ; moon_delete_file+58r ...
.data:0001A414 ; .data ends ; "(Ljava/lang/String;)Z"
.data:0001A414