Reversing

예를 들어 0xff는 이진수로 11111111이다. 이때, add 0xff, 1을 하면은 0x100, 이진수로 100000000이 되는데 최상위비트가 변하지않았으므로 부호가 바뀌지 않았다. 부호는 똑같고 자리올림만 발생했으므로 CF가 설정된다. 만약, add 0x7f, 1을 한다고 하면은 0x7f는 이진수로 01111111, 0x7f에 +1을 한값은 0x80, 이진수로 10000000이므로 최상위 값이 0에서 1로 변했다. 이는 양수에서 음수로 변화한것으로 부호가 바뀌었기 때문에 OF가 설정된다, 즉, 계산했을 때 최상위 비트가 바뀌면 (부호가 바뀌면) OF가 설정되고 아닌 경우엔 CF가 설정된다.
숫자를 넣을수있는 칸이 나오고 Wrong이라고 되어있다. 뭐 알맞은 값을 뜨면 통과하는 프로그램인것 같다. 디버거에 넣고 F8로 하나씩 가보면은 CALL 401000을 만나 본함수로 들어가진다. DialogBoxParamA함수가 보이는데 실제로 저 함수 뒤에 박스창이 뜨는걸 보면은 저함수가 박스창을 띄우는 용도인것 같다. 밑에 GetDlgItemInt랑 SetDlgItemTextA도 보이는데 GetDlgItemInt는 int형 정수를 받는 입력함수인것 같고 SetDlgItemTextA는 뭘 셋팅하는것 같은데 아마 정답으로 바꿔주는 함수인걸로 유추해볼 수 있다. 일단 그냥 실행시켜서 숫자 아무거나 (123 넣어봄) 쳐보고 하면은 저 40466F란 곳에 멈춰서 오류가 나게 된다. 40466F는 EAX 주소값..
디버깅 전 이 부분은 PEView를 잘 활용해야 한다. UPX 실행 압축된 PE File의 특징을 말하자면 UPX0 (첫번째 섹션) 은 RawDataSize가 0이다. 나중에 압축 해제된 코드들이 들어갈 자리이다. UPX1 (두번째 섹션) 에는 압축된 코드와 압축해제 코드가 들어가있다. 1. notepad.exe 010073B4에서 Dos Signature와 비교함 (5A4D = Dos Signature) 010073C0에서 NT_Header Signautre와 비교함 (5045 = NT_Header Signature) EP는 0100739D 2. 디버깅 목적 원본 코드의 EP 즉, OEP(Original Entry Point)를 notepad_upx에서 찾는것 3. UPX 파일 트레이싱 압축해제 과정은..
데이터 압축 1. 비손실 압축 : 압축된 파일을 100%복원 가능 (ex. 7-zip, 빵집) 2. 손실 압축 : 의도적인 손상을 주어서 압축률을 높이는 압축 (ex. jpg, mp3, mp4) 실행 압축 - PE 파일 대상(exe, dll, sys) - 일반 압축과 다르게 PE 파일의 실행이 가능함 패커 패커란 실행 파일 압축기를 말함 - PE 파일의 크기를 줄이고자 하는 목적 - PE파일의 내부 코드와 리소스를 감추기 위한 목적 (ex. UPX, ASPack, UPack, PESpin, NSAnti) 프로텍터 PE파일을 리버싱으로부터 보호하기 위한 유틸리티
여러가지 레지스터가 있는데 그중에서 범용 레지스터만 알아보겠다. EAX : Accumulator for operands and results data 일반적으로 함수 리턴 값에 사용 EBX : Pointer to data in the dS segment ECX : Counter for string and loop operations 반복문 명령어에서 반복 카운트로 사용 EDX : I/O Pointer EBP : Pointer to data on the stack (in the SS segment) EBP는 함수가 호출되었을 때 그 순간의 ESP를 저장하고 있다가, 함수가 리턴하기 직전에 다시 ESP에 값을 돌려주어 스택이 깨지지 않도록 함 (스택 프레임 기법) ESI : source pointer for..
프레딕
'Reversing' 카테고리의 글 목록