일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linux custom packer
- LLVM
- pthread
- uftrace
- thread local storage
- apm
- 난독화
- on stack replacement
- Injection
- custom packer
- initial-exec
- LLVM Obfuscator
- Linux packer
- TLS
- Android
- anti debugging
- on-stack replacement
- Obfuscator
- android inject
- OSR
- linux thread
- LLVM 난독화
- so inject
- 안티디버깅
- pinpoint
- linux debugging
- tracerpid
- v8 tracing
- v8 optimizing
- tracing
- Today
- Total
목록Knowledge/Linux (5)
Why should I know this?
Thread Local Storage 파헤치기 0. 개요Thread Local Storage는 Multi-Thread 프로그램을 작성하는데 거의 필수로 사용되는 기능이다.Linux에서의 Thread Local Storage에 대하 자세히 다뤄보고자 한다. 이 글에서 다루는 모든 소스코드와 예제는 github 저장소에 존재한다. https://github.com/ParkHanbum/study_tls.git 0-0. 배경 -. 프로그래밍 공학시간에 배웠듯, 프로그래밍 언어에서 지역변수는 Stack에, 전역변수는 Data 영역에 보관된다.-. 모든 프로세스에는 아키텍처에 가용한 최대한의 메모리가 가상 메모리로 제공된다. 이것을 Flat 혹은 Linear 메모리 모델이라고 부른다. 0-1. Thread 란?먼저..
apt를 통해 설치할 수 있는 debian packages들은 prebuilt되어 있으며 strip되어 있다.이를 위한 symbol 정보를 -dbg 으로 제공하는데, 이를 사용하기 위해 해야 할 작업이 있따. 여기 참고https://wiki.ubuntu.com/Debug%20Symbol%20Packages
execv로 실행한 프로세스에서 PRELOAD된 라이브러리를 구동하는 시점에.plt.got의 실행이 정상적으로 이뤄지지 않고 segfault를 발생시키는 문제가 있다.
TracerPid는 /proc를 통해 조회 가능한 정보로, gdb 등을 통해 해당 프로세스에 attach하고 있는 process의 pid를 기록하고 있다. kernel을 빌드할 때 아래처럼 일부 코드를 수정하면, tracerpid를 읽어 anti-debugging하려는 시도를 차단할 수 있다. ========================================출처 - https://gist.github.com/doughgle/e3a8c350dbf2370e69212f8b91fa4c88#file-gistfile1-txt-L17========================================commit acc0182c3d3869802bc20c8bf4e04c3464936bcc Author: Doug..
Linux Custom Packer 분석 libandroid.so 를 분석하기 위해 IDA에서 열려고 하면, out of memory를 에러 메시지 알림창을 띄우고 열지 못합니다. 이유는 libandroid.so의 ELF Header에 기록된 메모리 상의 크기보다 파일 크기가 작기 때문에, 부족한 부분을 찾지 못해 발생시키는 에러입니다. 마찬가지의 이유로 readelf와 objdump 모두 libandroid.so를 정상적으로 분석하지 못합니다. readelf 등의 도구를 통해 section 정보와 segment 정보를 확인하고, 실제 파일 사이즈를 확인해보면 크기 차이가 크다는 것을 알 수 있습니다. 이런 형식의 SO파일이 메모리에 로드되면 segment 정보에 따라 메모리는 할당되지만, 실제 파일에는..