Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 풀이
- 드림핵
- write-up
- ctf
- probgame
- 라이트 업
- write up
- 뭉뭉
- hackingcamp
- 2021
- 라이트업
- 강의
- 워 게임
- vsCode
- reversing
- 리버스 엔지니어링
- 시탭
- 코드엔진
- web
- reversing.kr
- 해킹캠프
- c언어
- 파이썬
- Basic
- PYTHON
- ShaktiCTF
- 리버싱
- 라업
- 히공
- 변수
Archives
히공
코드엔진 - advance 4 본문
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