목록리버싱 (25)
알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
stack frame 예제 스택 프레임을 알기 위해서 간단한 예제를 만들고 이것에 대해서 분석을 해보겠습니다. //#include #include "stdafx.h"long add(long a, long b) {long x = a, y = b;return (x + y);} int main(){long a = 1, b = 2;printf("%d\n", add(a, b)); return 0;} 저는 visual stdio 2017 로 최적화 옵션을 없음으로 하고 Relese 모드로 컴파일 하였습니다. 그리고 나서 olly debug 로 디버깅을 해 보겠습니다. 예전에 했던 asm 코드 시작 부분 찾는 부분이 조금 달라 졌습니다. 열어서 바로 실행 하면 나오는 코드가 실행 구간이 아닙니다. 주소도 0x4010..
안녕하세요 주로 저희가 다룰 프로그램들은 주로 intel cpu 위의 PC 프로그램들이 많습니다. 물론 ARM CPU도 시대가 변해 많아 졌지만 구조를 다르는 부분에서 intel x86의 asm 을 공부하고 ARM asm 을 보면 많은 도움이 됩니다. 굉장히 오래된 자료 이지만 개념에 대한 셜명이 매우 잘되어 있어 읽어 보면 매우 도움이 될것으로 예상 되어 자료를 올리게 됩니다. 첨부파일 : pcasm.pdf,djgpp-ex.zip 동시 첨부
visual 2017 c++ main start 포인트 찾기 디버깅을 하기 위한 예제 코드 입니다. C++ 콘솔로 프로젝트를 만들었습니다. 이전과 스타팅 포인트 찾는 법이 조금 달라져서 공부 겸 올리게 됩니다. olly debuger 로 F9 로 전진을 하면서 보면 이부분이 start 포인트 같지만 실제로는 메세지 박스도 없고 이전과 다른 stub 코드(컴파일러 마다 다른 초기 코드 init 코드) 를 가집니다. 하지만 JPM 를 하고 난뒤에 F8 로 쭉 내려가다 보면 이부분이 메인 함수를 호출 합니다. 호출 하고 나면 바로 위에 부분이 메인 함수 입니다. 예전 메인 함수와 모양이 달라 져서 조금 헤멜수 있기에 적어봤습니다.
올리 디버그 실행 시 A debugger has been found running in your system 이와 같은 에러가 나오는데 이는 백신 또는 공인 인증서 관련 프로그램과 충돌이 나서 나올때가 많다 필자의 경우에도 공인인증서 프로그램 제거후 해당 오류가 안나왔다.