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