보안/리버싱 스터디 라이트업
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;
}
이 코드 돌리면