
*해당 내용은 "리버싱 핵심원리"를 바탕으로 정리* 2. Hello World! 리버싱 사진 삭제 HellowWorld.cpp 다음 코드를 OllyDbg로 열기 코드를 OllyDbg로 열면 다음 화면과 같이 나온다. (책이랑은 주소가 다르게 나옴!) 화면 구성 (1) Code Window 기본적으로 disassembly code를 표시하여 각종 comment,label을 보여주며, 코드를 분석하여 loop, jump 위치 등의 정보를 표시한다. (2) Register Window CPU register 값을 실시간으로 표시하며 특정 register들은 수정 가능 (3) Dump Window 프로세스에서 원하는 memory 주소 위치를 Hex와 ASCII/유니코드 값으로 표시하고 수정도 가능 (4) Sta..

1. 10926번 ??! 문제 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오. 입력 첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다. 출력 첫째 줄에 준하의 놀람을 출력한다. 놀람은 아이디 뒤에 ??!를 붙여서 나타낸다. 예제 입력 1 joonas 예제 출력 1 joonas??! 예제 입력 2 baekjoon 예제 출력 2 baekjoon??! 소스코드 #include int main(){ char id[51]; sca..
1008 번 A/B 문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다. 예제 입력 1 1 3 예제 출력 1 0.33333333333333333333333333333333 10-9 이하의 오차를 허용한다는 말은 꼭 소수 9번째 자리까지만 출력하라는 뜻이 아니다. 예제 입력 2 4 5 예제 출력 2 0.8 소스코드 #include int main(){ int A,B; scanf("%d %d",&A,&B); printf("%0.9lf",(double)A/B); return 0; } 문제풀..
*해당 내용은 "리버싱 핵심원리"를 바탕으로 정리* 1.리버싱 스토리 리버스 엔지니어링: 물건이나 기계장치 혹은 시스템 등의 구조, 기능 , 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업 리버스 코드 엔지니어링 : 소프트웨어 분야의 리버스 엔지니어링으로 RCE,RE,역공학, 리버시 등의 용어로 불림 정적 분석: 겉모습을 관찰하여 분석하는 방법으로 파일을 실행하지 않음, 파일의 종류.크기,헤더 정보등의 다양한 내용을 확인 , 디스어셈블러를 이용하여 내부 코드와 그 구조를 확인하는 것 또한 정적 분석에 들어감 동적 분석:파일을 직접 실행시켜 행위를 분석하고 디버깅을 통하여 코드 흐름과 메모리 상탣등을 자세히 살펴보는 방법 (파일, 레지스트리, 네트워크등을 관찰..

두 자연수의 덧셈, 빼기, 곱섹 ,나눗셈, 나머지 출력 처음에 a=7 b=3 을 해놓고 풀었더니 틀려서 전에 처럼 입력받는걸로 코드를 바꿨더니 성공 + a/b라고 나와있어서 a/b라고 했는데 알고보니 몫 구하는 문제였음 - //(몫 구함)을 써야한다. 또 찾아보니 sep='\n' 을 뒤에 입력할시 print를 여러번 쓰지않고도 여러줄로 입력 가능하다 sep="" 은 print 출력문들 사이에 해당하는 내용을 넣을 수 있음 (기본값은 공백) 위 문제에서는 sep='\n'을 넣었기에 print 출력문들 마다 줄바꿈이 된거임(@을 넣었을경우 줄바꿈이 아닌 사이에 @가 들어감)