보안/리버싱 스터디 라이트업

1001 라이트업 (CodeEngn Basic RCE 17)

고고예준 2024. 10. 6. 22:40

압축 풀었음

여기저기 브레이크를 걸고

 

name을 한자릿수, 두자릿수 입력했을 때.

eax는 입력한 자릿수가 됨

 

문제에선 한 자릿수를 입력하라고 했는데

cmp eax, 3이 있었음. 3과 비교함...

->어셈블리어를 1로 수정한다

 

수정하고 다른이름으로 저장

이 부분이 돌아가며 시리얼 번호 생성

 

#include <stdio.h>

int main(void)

{

ㅤㅤint ESI = 0, EDX = 0;

ㅤㅤfor (int i = 0x30; i <= 0x7A; i++) { //from 0 to z

 

ㅤㅤㅤㅤESI = i * 0x772; //IMUL ESI, ESI, 0x772

ㅤㅤㅤㅤEDX = ESI; //MOV EDX, ESI

ㅤㅤㅤㅤEDX *= ESI; //IMUL EDX, ESI

ㅤㅤㅤㅤESI += EDX; //ADD ESI, EDX

ㅤㅤㅤㅤESI *= 0x474; //IMUL ESI, ESI, 0x474

ㅤㅤㅤㅤESI += ESI; //ADD ESI, ESI

ㅤㅤㅤㅤEDX = ESI;

 

ㅤㅤㅤㅤprintf("%c >> %X\n", i, EDX); //생성된 시리얼 출력

ㅤㅤ}

ㅤㅤreturn 0;

}

 

이 코드 돌리면