/usr/bin/blog — bash — 80x24

┌──(root㉿reverse)-[~/blog]

└─# Kimjeju Seculog

; 취미가 공부

[+]

'전체 글' — 93 hits

  1. 2026.08.30 [AI퀀트트레이딩] #4 내 전략에 엣지가 없다는 걸 하루 만에 증명했다.. []
  2. 2026.08.28 [AI퀀트트레이딩] #3 AI한테 자동매매를 맡겼더니, 리뷰할 때마다 새 버그가 나왔다 []
  3. 2026.08.24 [AI퀀트트레이딩] #2 첫 실전 투입, 그리고 AI는 아무것도 사지 않았다 [1]
  4. 2026.08.23 [티스토리 스킨] 개발자·보안 블로그를 위한 다크 스킨 '0xREVERSE' 무료 배포 []
  5. 2026.08.23 [tool] 리버싱툴 기드라 한글 가이드 무료 배포 (내장 Docs 한국어 번역) []
  6. 2026.08.23 [AI주식투자] #1 감정 없는 AI로 미국주식 자동매매 만들기 []
  7. 2026.08.03 [Reversing] Assault Cube #2 — 체력(HP) 포인터 체인 뽑기 [1]
  8. 2026.07.31 [Reversing] Assault Cube #1 - Cheat Engine 메모리 변조 []
  9. 2026.07.29 [Reversing] bof1 Write-up []
  10. 2026.07.27 [Pwnable] pwntools Write-up []
  11. 2026.07.26 [Reversing] hackers Write-up [1]
  12. 2026.07.23 [Reversing] quick — strcmp 인자를 훔쳐보고 플래그 얻기 []
0x00400000

call [AI퀀트트레이딩] #4 내 전략에 엣지가 없다는 걸 하루 만에 증명했다..

자동매매 시스템을 돌리면서 당연한 욕심이 생겼다. 수익률을 높이고 싶다. 그래서 전략을 추가하는 대신 검증부터 했다. 하루 동안 다섯 개의 전략 후보를 통계적으로 검증했고, 다섯 개 전부 기대값이 0이었다. 심지어 그 과정에서 내가 발견했다고 발표한 유일한 성과마저 내 통계 오류였다. 이 글은 그 5전 5패의 기록이다.1막 — 엣지가 보였다시작은 정직한 질문이었다. "우리 전략에 진짜 엣지가 있나?" 실거래 데이터는 표본이 너무 적었다. 그래서 과거 데이터로 검증하기로 했다. 다만 이번엔 제대로 하기로 했다. 백테스트에서 파라미터를 고르고 같은 데이터로 평가하면 성과가 부풀려진다는 걸 알고 있었기 때문이다. 그래서 워크포워드로 짰다. 과거 2년 구간에서 진입 문턱을 고르고, 그 다음 6개월 구간에서만 평..

jmp read_more ›
0x00400000

call [AI퀀트트레이딩] #3 AI한테 자동매매를 맡겼더니, 리뷰할 때마다 새 버그가 나왔다

소액으로 미국 주식 야간 자동매매 시스템을 실전 투입했다. 목표는 대박이 아니라 자본을 생존시키면서 오래 굴리는 것이다. 그런데 몇 주간 이 시스템을 만들며 가장 많이 배운 지점은 전략도, 시장도 아니었다. 손실을 막으려고 넣은 방어 코드가 매번 새로운 손실 경로를 만들었다는 사실이었다.왜 만들었나시작은 단순했다. 감정 없이, FOMO 없이, 규칙대로만 움직이는 트레이딩 시스템.사람은 물타기를 하고, 손실을 만회하려고 포지션을 키우고, "언젠가 오르겠지"로 손절을 미룬다. 코드는 그러지 않을 수 있다 — 적어도 이론상으로는. 그래서 최우선 원칙을 하나로 못 박았다.① 치명적 손실 방지 → ② 자본 보존 → ③ 기대값 확보 → ④ 고확률 구간 집중 → ⑤ 장기 복리수익률은 다섯 번째다. 첫 번째는 "파산 ..

jmp read_more ›
0x00400000

call [AI퀀트트레이딩] #2 첫 실전 투입, 그리고 AI는 아무것도 사지 않았다

40만 원으로 시작한 AI 자동매매 프로젝트, 오늘이 실거래 첫날이었다. 시작 전에 잔고에 변화가 있었다. 어머니가 "투자 열심히 해보라"며 100만 원을 보태주셨다. 계좌를 확인하니 $1,009. 원래 40만 원으로 굴릴 생각이었는데 갑자기 판이 커졌다. 부담도 같이 커졌다. 이 돈은 잃으면 안 되는 돈이다. 시스템의 리스크 한도는 자동으로 한 단계 올라갔다.거래당 최대 손실 약 $9, 하루 한도 -2%($20), 그 밑으로 내려가면 전체 중단.실거래 전환은 한 번에 되지 않았다모의(PAPER)에서 실거래(LIVE)로 넘어가는 절차를 미리 만들어뒀다. 진짜 주문이 나가는 API가 제대로 붙는지 확인하는 검증 단계다. 방식은 이렇다. 현재가보다 30% 낮은 가격에 지정가 매수 1주를 걸어본다. 이 가격엔..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 8. 23.

call [티스토리 스킨] 개발자·보안 블로그를 위한 다크 스킨 '0xREVERSE' 무료 배포

0xREVERSE리버스 엔지니어링 · 해커 터미널 컨셉의 다크 티스토리 스킨CRT 스캔라인 · 디스어셈블리 스타일 글 목록 · gdb 스택 프레임 댓글 스킨 다운로드┌──(root㉿reverse)-[~/blog]└─# ./install 0xREVERSE.skin[+] terminal header ......... ok[+] disasm post listing ..... ok[+] stack-frame comments .... ok[+] konami easter egg ....... armed왜 0xREVERSE인가흔한 스킨은 예쁘지만 "나"를 말하지 않는다. 0xREVERSE는 첫 화면부터 방문자에게 이 블로그가 무엇을 다루는지 선언한다 — root㉿reverse:~/blog#. 보안·리버싱·개발 블로그..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 8. 23.

call [tool] 리버싱툴 기드라 한글 가이드 무료 배포 (내장 Docs 한국어 번역)

기드라(Ghidra) 한글 사용법을 찾다가 마땅한 게 없어서 직접 만들었다. 리버싱할 때 Ghidra를 자주 쓰는데, 정작 프로그램 안에서 F1을 누르면 뜨는 내장 도움말(Help)이 전부 영어다. 매번 영어로 읽자니 흐름이 끊겨서, 자주 보는 핵심 토픽을 한국어로 직접 번역한 기드라 한글 가이드다.원래는 내가 참고하려고 만든 건데, 막상 만들어 놓으니 나처럼 답답했던 사람이 있을 것 같아서 그냥 무료로 풀어 둔다. 비공식 번역이고 완벽하진 않지만, 기드라 입문 단계에서 메뉴가 뭐 하는 건지, 프로젝트/프로그램/도구를 어떻게 다루는지감 잡는 데는 충분할 거다.⚠️ 미리 밝혀두면, "한글패치"처럼 프로그램 UI 자체를 바꾸는 게 아니라 내장 도움말(Help) 문서의 한국어 번역본이다.뭐가 들어있나Ghidr..

jmp read_more ›
0x00400000

call [AI주식투자] #1 감정 없는 AI로 미국주식 자동매매 만들기

AI 자동매매 실험기 · 1편AI에게 주식 계좌를 맡겨봤다감정 없는 시스템이 대신 미국주식을 굴리면 어떻게 되는지, 소액으로 해보는 중이다. 사람은 주식 앞에서 판단이 흐려진다. 오를 것 같으면 따라 사고, 물리면 곧 오르겠지 하며 버티고, 손실이 나면 그걸 메꾸려고 더 크게 건다. 나도 그랬고, 대체로 이 감정이 계좌를 무너뜨린다. 그래서 반대로 해보기로 했다. 감정이 없는 쪽에 매매를 맡기는 것이다. 클로드와 함께 미국주식 자동매매 시스템을 직접 만들고 있고, 이 글은 그 첫 기록이다. 아직 수익을 자랑하는 글은 아니다. 목차왜 AI에게 맡기나버는 것보다 안 잃는 게 먼저다혼자 지르지 않는다 — 네 단계 검증반대편 의견을 강제로 듣게 했다폭주를 막는 장치소액으로 비싼 종목 사기그래서 1억을 벌 수 있..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 8. 3.

call [Reversing] Assault Cube #2 — 체력(HP) 포인터 체인 뽑기

게임 리버싱을 통해 메모리 구조를 이해하고, 동적 주소를 안정적인 포인터 체인으로 역추적하는 과정을 정리한다. 실습 대상은 안티치트가 없어 학습용으로 널리 쓰이는 오픈소스 FPS Assault Cube이며, 도구는 Cheat Engine을 사용한다.0. 왜 포인터 체인이 필요한가Cheat Engine으로 체력 값을 스캔하면 009668B4 같은 주소를 하나 찾을 수 있다. 그런데 게임을 껐다 켜면 이 주소는 매번 바뀐다. 값 자체는 힙/할당 영역에 동적으로 배치되기 때문이다.실제로 재시작 후 이전 주소에 "Find out what accesses this address"를 걸어보면 아무 명령도 잡히지 않는다. 그 주소에는 더 이상 체력 데이터가 없기 때문이다.주소 그 자체가 아니라, 그 주소를 매번 계산..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 7. 31.

call [Reversing] Assault Cube #1 - Cheat Engine 메모리 변조

리버싱/악성코드 분석 역량 강화를 위한 사이드 프로젝트의 첫 실습 기록. 오프라인 싱글플레이 오픈소스 FPS인 Assault Cube를 대상으로, Cheat Engine의 값 변화 스캐닝(value-changes scan)만으로 탄약 값을 저장한 메모리 주소를 특정하고 원하는 값으로 덮어써 본다.왜 이걸 하는가메모리 변조 실습은 게임에서 총알을 늘리려고 하는 게 아니다. 목표는 프로세스의 런타임 메모리를 읽고 쓰는 감각을 손에 익히는 것이다.OpenProcess → ReadProcessMemory / WriteProcessMemory로 이어지는 시퀀스는, 방어자 입장에서는 프로세스 인젝션·크리덴셜 덤핑·게임핵을 탐지할 때 EDR이 보는 바로 그 패턴이다.Cheat Engine은 이 과정을 GUI로 추상화..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 7. 29.

call [Reversing] bof1 Write-up

분류: Pwnable / Stack Buffer Overflow (지역 변수 덮어쓰기)대상: war.knock-on.org:46932바이너리: bof1 (x86-64, No PIE)0. 개요scanf("%s", ...)로 길이 제한 없이 입력을 받는 전형적인 스택 버퍼오버플로우 문제다.리턴 주소를 조작하는 대신, 버퍼 바로 뒤에 있는 지역 변수(local_c)를 특정 값으로 덮어써서 분기 조건을 통과시키고 셸을 획득한다.1. 정적 분석 (Ghidra)디컴파일 결과:undefined8 main(void){ undefined1 local_28 [28]; // 입력 버퍼 (RBP-0x20) int local_c; // 비교 대상 변수 (RBP-0x4) initia..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 7. 27.

call [Pwnable] pwntools Write-up

서버가 던지는 두 수의 곱을 시간 안에 돌려주면 플래그. 손으로는 안 되고 pwntools로 자동화해야 하는 전형적인 워밍업 0. 문제 개요war.knock-on.org:46830으로 접속하면 서버가 num1, num2 두 정수를 출력하고, 그 곱을 입력받는다. 맞으면 플래그, 틀리면 no.... 문제 이름이 pwntools인 것부터가 힌트 — 자동화 스크립트로 풀라는 뜻이다.1. 일단 수동으로 (nc) — 왜 안 되는가C:\Users\MyPC> nc war.knock-on.org 46830num1 : 33257num2 : 45295TIME OUT 두 수를 눈으로 읽고 계산기 두드려서 넣으려는 순간 TIME OUT. 응답 제한시간이 걸려 있어서 사람 손으로는 물리적으로 불가능하다. 자동화가 강제되는 구조..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 7. 26.

call [Reversing] hackers Write-up

Ghidra 정적 분석 + gdb-gef 동적 분석으로 조건 분기를 추적해 플래그를 획득한 과정 정리.0. 문제 개요hackers라는 ELF 바이너리 하나가 주어진다. 실행하면 level / name / age / new Skill 네 가지 입력을 받고, 조건을 만족하면 플래그를 뿌려준다. 목표는 이 조건을 역으로 분석해 통과시키는 것.1. 바이너리 점검 (checksec)gef> checksecCanary : ✓NX : ✓PIE : ✓Fortify : ✗RelRO : FullPIE가 활성화되어 있다는 점이 이번 문제에서 브레이크포인트를 잡을 때 핵심 포인트가 된다. Ghidra 기준 주소를 그대로 쓰면 안 되고, 런타임 로드 베이스를 더해줘야 한다.⚠️ checksec 출..

jmp read_more ›
0x00400000
.Programming/hacking 2026. 7. 23.

call [Reversing] quick — strcmp 인자를 훔쳐보고 플래그 얻기

[Reversing] quick — strcmp 인자를 훔쳐보고 플래그 얻기0. 문제 개요quick이라는 이름의 x86-64 ELF 바이너리 한 개가 주어진다. 이름부터 힌트인데, 결론부터 말하면 퀵소트(quicksort) 로 정렬된 문자열과 사용자 입력을 비교하는 문제였다.정적 분석으로 로직을 파악하고, 동적 분석으로 비교 대상 문자열을 그대로 뽑아내는 전형적인 흐름으로 풀었다.1. 일단 실행부터$ ./quickInput the flag : 1234Nah..플래그를 입력받아 맞으면 성공, 틀리면 Nah..를 출력하는 단순한 구조. 입력값 검증 로직이 바이너리 내부에 있다는 뜻이므로 바로 디컴파일러를 켠다.2. Ghidra 정적 분석main에 해당하는 FUN_004014bd를 디컴파일하면 아래와 같다.u..

jmp read_more ›