히공

코드엔진 - advance 4 본문

reverse engineering/CodeEngn

코드엔진 - advance 4

heegong 2021. 2. 8. 16:58
728x90

문제 입니다.

 

 

 

실행화면 입니다.

 

 

 

x32dbg로 열었습니다.

 

원본 코드를 복호화 하는 작업 같습니다.

 

f9를 눌러줍니다.

 

 

 

문자열을 찾아줍니다.

 

 

 

실패 메세지로 이동합니다.

 

 

 

 

여기가 체크 하는 부분입니다.

 

 

 

bp를 걸어줍니다.

 

 

 

 

 

비번값인 "1234"와 "LOD-59919-A0024900"를 비교합니다.

 

 

 

 

정답

입니다.

 

 

 

 

 

 

++

페스워드 생성 루틴을 분석하겠습니다.

 

 

 

 

 

0x401127에 bp를 걸어줍니다.

 

 

 

 

를 입력해주고 Test를 눌러줍니다.

 

 

 

 

 

for문을 돌려 페스워드 값을 만듭니다.

 

 

 

 

def dword(a1):
    return a1 & 0xffffffff


Name = input("input name : ")

esi = 0
ecx = 0
edx = 0xA
edi = 0

for i in Name:
    eax = ord(i)+1
    eax+=edx
    esi += eax
    ecx+=1
    edx *= ecx
    edi = edx
    edi *= esi


password = "LOD-%d-%X"%(dword(esi),dword(edi))
print(password)

간단하게 구현할 수 있습니다.

 

 

 

정답 : LOD-59919-A0024900

'reverse engineering > CodeEngn' 카테고리의 다른 글

코드엔진 - advance 6  (0) 2021.02.10
코드엔진 - advance 5  (0) 2021.02.09
코드엔진 - advance 3  (0) 2021.02.05
코드엔진 - advance 2  (0) 2021.02.04
코드엔진 - advance 1  (0) 2021.01.04
Comments