반응형
Basic RCE L11
OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. 
Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte 
Ex ) 00401000FF35CA204000E84D000000 





stolenbyte 12byte와 OEP 00401000를 구할 수 있다. jmp는 0040100c로 하지만 stolenbyte 0xC byte 만큼 붙여주면 oep는 0040100c가 된다.



Basic RCE L12
Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다 
이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 
문제 : Key값과 + 주소영역을 찾으시오 
Ex) 7777777???????? 




참조된 문자열을 찾아서 성공 메세지를 출력하는 부분을 찾고 그 위에서 비교문과 분기점에 breakpoint를 걸고 실행했다.


key 값으로 1234를 넣었는데, 넣은 1234와 0x7A2896BF과 비교하는 것을 볼 수 있다.


0x7A2896BF == 2049480383


key 값은 2049480383이 된다.




key값이 MessageBox에 출력되도록 하려면 HxD로 열어서 Cong~~~부분을 찾는다.




성공 메세지 부분을 2049480383(\x00)으로 덮어주면 된다.[0x0D3B~0x0D45]




Basic RCE L13

정답은 무엇인가 



.NET은 DOTPEEK으로!



main을 보면, 암호화된 문자열을 복호화 한 값이랑 사용자 입력값이랑 비교한다.





코드를 추출해서 복호화된 문자열을 출력하도록 했다.







Basic RCE L14
Name이 CodeEngn 일때 Serial을 구하시오 
(이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) 
Ex) 11111 



upx 패킹이 되어 있으므로 언패킹을 진행하고 올리디버거로 열었다.







참조된 문자열중 성공문자열을 찾고, 그 위에 분기점과 비교문에 breakpoint를 걸고 실행했다.





CodeEngn / 11111을 입력했을 때 


11111은 EAX에 들어가서 ESI값 0x129A1과 비교하게 된다



0x129A1의 10진수 값 76193을 입력해주면 성공메세지가 출력된다.




Basic RCE L15
Name이 CodeEngn일때 Serial을 구하시오 



이번에는 패킹이 되어있지 않아서 바로 올리디버거로 열었다.




참조된 문자열에서 성공메세지를 찾고 그 위 비교문에 breakpoint를 걸고 실행했다.





CodeEngn / 12345 로 입력을 했는데 입력한 12345와 24928을 비교한다.





Basic RCE L16
Name이 CodeEngn일때 Serial을 구하시오 


이번에도 패킹은 없다.




참조된 문자열에서 성공메세지를 찾아 그 위 비교문에 breakpoint를 걸고 실행했다.





CodeEngn / 11111 로 입력했더니 11111과 0xE4C60D97과 비교한다.



0xE4C60D97 의 10진수값을 시리얼로 입력해주면 된다.

반응형

'WAR GAME > CodeEngn' 카테고리의 다른 글

CodeEngn [Basic RCE] 1 ~ 10 풀이  (0) 2019.02.09
CodeEngn [Cryptology] 풀이  (8) 2019.02.09

+ Recent posts