전체 글

전체 글

    CodeEngn Advance01 풀이

    드디어 베이직이 끝나고 어드벤스드로 들어왔네요 ㅎㅎㅎ... 엄청오래걸렸지만 ㅠㅠ 이문제는 베이직에서 본거랑비슷하네요 time 관련함수를 찾아볼까요 일단 안티디버깅이 되어있으니 피해주시구요timeGetTime 함수로 시스템시간을 받아오고 있네요. 함수를 두번 실행시킵니다.두개의 함수의 차를 구합니다. 그리고 ebx+4에 있는 어떤값이랑 비교해서 그값보다 크면 점프합니다.ebx+4 에 있는 값은 337B로 10진수로는 13179입니다. 13179ms 후에 프로그램은정지됩니다.정답은 MD5 해시로 변환하라고 했으니까 변환하면.. DB59260CCE0B871C7B2BB780EEE305DB 입니다.풀이완료 !

    CodeEngn Basic20 풀이

    crackme3.key 안의 파일의 데이터가 무엇인지 구하는 문제입니다. 코드는 매우 간단하고 직관적으로 되어있습니다. crackme3.key 파일을열고 그안의 12바이트데이터를 불러옵니다.파일은 굳이 만들지않고 없을시에 다른곳으로 점프하는걸 막아서 파일이 있는척했습니다. ReadFile함수이후의 분기점에서도 그냥 넘어가게 해두었구요 알고리즘은 직접 한줄씩 트레이싱 해보면 간단하게 알수있습니다.중요하게봐야할 부분은 주소 401079 부분 부터인데요 여기서 4020F9주소에 12345678과 xor 한값을 넣습니다. 이값은 나중에 eax와 비교해서 크랙성공메세지를 띄우게할 값입니다. 그밑의 40108B부분으로 들어가보겠습니다. 여기서 4020F9주소의 값과 비교할 eax값을 세팅해주는 중요한 부분입니다. ..

    CodeEngn Basic19 풀이

    이 프로그램이 몇밀리세컨드 이후에 종료되는지에대한 문제입니다. 이런창이 뜨면서 일정시간 이후에 자동으로 종료하게 됩니다. 디버거로 열게되면 이런 메세지를 띄우게됩니다. 안티디버깅 기법이 적용되어있나보네요 . 시간에 관련된거라 생각하면서 트레이싱 하다보니 뭔가 있었는데 메세지박스가 실행이 되지않는걸로보아 여기는 아니네요.디버깅을 감지하는 함수를 발견했습니다. 여기에 bp를 걸어주시고 안티디버깅을 우회하기위해서 ZF를 1로 변경해 주었습니다. 점프를 하지못하게요. 프로그램을 실행하면 보이는 Msgbox의 text string은 참조된 문자열목록으로 봤을때 뜨질않아서 하드코딩한게 아닌 내부적으로 문자열을 만들어 낸다고 생각해서 트레이싱해보니 역시나 맞았습니다. MsgBox 내부에는 또 MessageBoxExW..