키젠문제인데 올리로 알고리즘 분석할랫더니 생각보다 복잡해서 ida로 봤는데도 생각보다 많이 헤맸다.

 

핵심 함수. (check_serial함수)

 

 

index값 구해오는 사용자 정의함수 구조(stringFindSecond함수)

 

 

list = "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"

strings = "AJXGRFV6BKOW3Y9TM4S2ZU I70H5Q81PDECLNAJXGRFV6BKOW3Y9TM4S2ZU I70H5Q81PDECLNAJXGRFV6BKOW3Y9TM4S2ZU I70H5Q81PDECLN"

serial = "WWWCCCJJJRRR"

result = []

for j in range(0,12,3):
first_index = strings.find(serial[j]) + 1
result1 = strings[first_index:].find(serial[j]) + first_index
for i in range(0,len(list)):
first_index = strings.find(list[i]) + 1
result2 = strings[first_index:].find(list[i]) + first_index
if abs(result2 - result1) <=5:
print str((j+1)/3+1)+"th name = " + list[i]

ida로 확인한 뒤 요런식으로 브루트 포싱해주는 코드짜서 돌리면 name의 각자리수별로 가능한 문자들이 나오는데 정답중 0~9,a~z,A~Z 순서상 가장 먼저 오는 문자열 구하래서 맨위의 문자들 조합해주면 된다.

 

 

 

'Wargame > CodeEngn' 카테고리의 다른 글

CodeEngn advance 9번  (0) 2018.02.28
CodeEngn advance 8번  (0) 2018.02.28
CodeEngn advance 7번  (0) 2018.02.28
CodeEngn advance 6번  (0) 2018.02.08
code engn advance 5번  (0) 2018.02.08
블로그 이미지

JeonYoungSin

메모 기록용 공간

,