ii4gsp
리버싱 (Reversing) 예제 본문
#include <stdio.h>
int sum(int a, int b)
{
int result = 0;
result = a + b;
return result;
}
int main(int argc, char *argv[])
{
int x = 9;
int y = 4;
int result = sum(x, y);
if (result > 10) printf("Good!! Result : %d\n", result);
else printf("Bad.. Result : %d\n", result);
}
예제 소스코드이다.
소스코드를 컴파일하여 실행해보면
이 소스코드는 else문이 출력되지 않는다.
실행파일을 올리디버거로 열어보겠다.
방법1
올리디버거로 열고 조금 밑에 내려가보면 main()함수가 보인다.
CMP DWORD PTR SS:[EBP-20], 0A에서 A는 10인것을 알수있다.
A를 13보다 높거나 같은 값으로 바꿔서 실행해도 else문이 실행될것이다.
방법2
JLE는 작거나 같을때 점프를하는 명령문이다
크거나 같을때 점프를하는 JGE 명령문으로 바꿔주고 프로그램을 실행 해보았다.
'리버싱' 카테고리의 다른 글
[Reversing] Hello World 문자열 패치 (0) | 2020.08.20 |
---|---|
[Reversing] Hello World (0) | 2020.08.18 |
FSC_Level1 (0) | 2020.01.06 |
Comments