본문 바로가기

7. for 리버싱 for문이 포함된 어셈블리어 코드 7. for 리버싱 for문이 포함된 어셈블리어 코드 본 포스팅의 내용은 해킹 맛보기 책의 내용중 3장 리버스 엔지니어링 P133~P281 까지 실습 내용을 따라하기 해보았습니다. 책의 내용중 일부 발췌 (수정) 하였습니다. 문제가 될 때는 비공개 하도록 하겠습니다. #include int main() { int lv; for (lv=0; lv 더보기
6. 6개의 분기가 포함된 어셈블리어 코드 6. 6개의 분기가 포함된 어셈블리어 코드 본 포스팅의 내용은 해킹 맛보기 책의 내용중 3장 리버스 엔지니어링 P133~P281 까지 실습 내용을 따라하기 해보았습니다. 책의 내용중 일부 발췌 (수정) 하였습니다. 문제가 될 때는 비공개 하도록 하겠습니다. #include int main() { int lv = 2; switch (lv) { case 0: printf("lv is 0 "); break; case 1: printf("lv is 1 "); break; case 2: printf("lv is 2 "); break; case 3: printf("lv is 3 "); break; case 4: printf("lv is 4 "); break; default: printf("default "); } .. 더보기
5. switch문이 포함된 어셈블리어 코드 5. switch문이 포함된 어셈블리어 코드 본 포스팅의 내용은 해킹 맛보기 책의 내용중 3장 리버스 엔지니어링 P133~P281 까지 실습 내용을 따라하기 해보았습니다. 책의 내용중 일부 발췌 (수정) 하였습니다. 문제가 될 때는 비공개 하도록 하겠습니다. #include int main() { int lv = 2; switch (lv) { case 0: printf("lv is 0 "); break; case 2: printf("lv is 2 "); break; default: printf("default "); break; } return 0; } [발췌-수정] 00CD13EE 주소에서 지역변수인 lv([EBP-8])에 2를 할당하고 , 00CD13F5 주소에서 CMP 명령어로 0 과 먼저 비교한다.. 더보기
4. if 리버싱 (if문이 포함된 어셈블리어 코드) 4. if 리버싱 (if문이 포함된 어셈블리어 코드) 본 포스팅의 내용은 해킹 맛보기 책의 내용중 3장 리버스 엔지니어링 P133~P281 까지 실습 내용을 따라하기 해보았습니다. 책의 내용중 일부 발췌 (수정) 하였습니다. 문제가 될 때는 비공개 하도록 하겠습니다. #include int main() { int lv = 2; if (lv > 0) printf("%x ", lv); return 0; } if문이 포함된 어셈블리어 코드 MOV DWORD PTR SS:[EBP-8],2 CMP DWORD PTR SS:[EBP-8],0 JLE SHORT 01141416 [발췌-수정] 011413EE 주소에서 지역 변수인 lv([EBP-8])에 2를 할당하고, 011413F5 주소에서 CMP 명령어로 상수 0과 .. 더보기
3. 구조체 출력 어셈블리어 코드 3. 구조체 출력 어셈블리어 코드 본 포스팅의 내용은 해킹 맛보기 책의 내용중 3장 리버스 엔지니어링 P133~P281 까지 실습 내용을 따라하기 해보았습니다. 책의 내용중 일부 발췌 (수정) 하였습니다. 문제가 될 때는 비공개 하도록 하겠습니다. #include struct ST { int sv_1; int sv_2; int sv_3; }; int main() { struct ST st; st.sv_1 = 1; st.sv_2 = 2; st.sv_3 = 3; printf("%x, %x, %x\n", st.sv_1, st.sv_2, st.sv_3); return 0; } 구조체를 출력하는 어셈블리어 코드 MOV DWORD PTR SS:[EBP-14],1 MOV DWORD PTR SS:[EBP-10],2 M.. 더보기