티스토리 뷰
import frida
import sys
def on_message(message, data):
if message['type'] == 'send': #정상적으로 전송되었다면 payload 출력
print("[+] {0}".format(message['payload']))
elif message['type'] == 'error':
print("[!] {0}".format(message['stack']))
def main(target):
session = frida.attach(target) #타켓 프로세스 attach
script_code = """ #javascript가 python에서 동작할 수 있도록 함
var _bind = Module.findExportByName(null, "_bind"); #findExportByName: 찾고자 하는 모듈(라이브러리 이름)과 심볼(함수 이름)의 이름을 대상으로 검색, 모듈은 None이고 _bind 심볼을 검색하고 주소를 반환
if (_bind) {
send("_bind found at: " + _bind);
Interceptor.attach(_bind, { #찾은 메모리 주소를 가지고
onEnter: function (args) { #onEnter: 함수가 호출될 때마다 실행할 함수
send("_bind called with arguments: " + args[0].toInt32() + ", " + args[1].toInt32()); #찾은 함수에 전달된 매개변수를 호출
},
onLeave: function (retval) { #onLeave: 함수가 반환될 때 실행할 함수
send("_bind returned: " + retval.toInt32()); #반환한 값을 출력
}
});
} else {
send("_bind not found in the target process.");
}
"""
script = session.create_script(script_code) #스크립트 코드를 세션에 전달
script.on('message', on_message) #on_message 함수의 결과를 가져옴, send되었는지 에러가 발생했는지 확인
script.load() #작성한 스크립트 함수를 프로세스에 로드하여 후킹 활성화
sys.stdin.read() #스크립트가 지속적으로 동작하도록 유지
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python hook_bind.py <target_process>")
sys.exit(1)
target_process = sys.argv[1]
main(target_process)
'IOS' 카테고리의 다른 글
[IOS] / iPA 분석 (1) | 2024.12.13 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- many-to-one
- Ethernet
- AVTP
- 케라스
- 차량용 이더넷
- Python
- HTML
- one-to-many
- PCA
- automotive ethernet
- 이상탐지
- 로지스틱회귀
- AVB
- 딥러닝
- automotive
- SVM
- cuckoo
- problem statement
- AE
- 회귀
- SOME/IP
- 차량 네트워크
- json2html
- 크로스 엔트로피
- porks
- 단순선형회귀
- 논문 잘 쓰는법
- 머신러닝
- many-to-many
- CAN-FD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함