반응형
추가설명 while은 반복문인데
while(1) 컴퓨터는 1이참 0이거짓이기떄문에 참일경우를 조건이니 무한반복
while(0)은 절대실행불가능 리버싱 시작
이걸 리버싱으로 내부를보자
VS 2019기준 main에 BP걸고 간다
security cookie등 보안이보이니까 분석을위해 다해제하자
https://dhhd-goldmilk777.tistory.com/149
이글을 참조해서 보안을해제시키자
보안해제후
이걸보면 알겠지만 break는 jne로 반복문을 벗어나게해주는역활이고
항상참이기때문에 jmp라는 분기조건문이 있다
분석을위해 위에 반복문을지우고 다시코딩해서 while(0)을분석해보자
xor eax,eax명령으로 eax값이 0이되면
je로 결국 점프되서 저명령을 실행되지않는다
while(0)의원리
while(1)의원리
총정리
while(1)은 jmp를이용한 무한반복
while(0)은
xor eax,eax //이문장은 eax를 0으로만든다
je 문으로 실행불가능
++정보
break는 반복문 이반복되기전
조건확인후 분기조건문으로 탈출
추가연구
이렇게 1이아니라도 0이아니면 무한반복이되는데 코드를보면
-1의경우는이렇고이렇다
2의경우는 이렇다
반응형
'PC리버싱 > 기타' 카테고리의 다른 글
재미용)변태적인 C언어 코딩법 (0) | 2020.06.06 |
---|---|
컴퓨터 참(1) 과 거짓(0)에대해서 (0) | 2020.06.06 |
버퍼오버플로우에대해서 예제 (0) | 2020.05.28 |
GS (Stack Canary/Cookie) 실험기록 (0) | 2020.05.28 |
옛날 보다 현재가 리버싱이 더어려운이유들 (0) | 2020.05.28 |