Hongfluenza

[SuNiNaTas] 05번 문제 본문

CHALLENGE/SuNiNaTaS

[SuNiNaTas] 05번 문제

Hongfluenza 2018. 11. 8. 01:10

써니나타스 5번 문제이다. 너무 볼 것이 없어서 페이지 소스를 보았다.





핵심이 될 만한 코드는 이 함수였다. eval(function(p,a,c,k,e,r) 이 부분을 알기 위해 구글링을 한 결과, 자바스크립트 난독화가 되어있었다는 것을 알게 됐다.


간단한 자바스크립트 난독화를 해제해주는 사이트도 많았다. https://www.strictly-software.com/unpack-javascript 이 사이트를 통해서 해제 해보았다.



소스코드에서 힌트가 될 만한 내용은 다음과 같다. 


atom을 이용해 다음과 같은 코드에 alert(PASS(12342046413275659)) 를 추가시켜 실행해보았다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!<!DOCTYPE html>
<html>
<body>
  <script>
    var digitArray = new Array('0''1''2''3''4''5''6''7''8''9''a''b''c''d''e''f');
function PASS(n) {
    var result = '';
    var start = true;
    for (var i = 32; i > 0;) {
        i -= 4;
        var digit = (n >> i) & 0xf;
        if (!start || digit != 0) {
            start = false;
            result += digitArray[digit]
        }
    }
    return (result == '' ? '0': result)
}
  alert(PASS(12342046413275659))
  </script>
  </body>
</html>
 
cs


코드는 다음과 같다.



'CHALLENGE > SuNiNaTaS' 카테고리의 다른 글

[SuNiNaTaS] 07번 문제  (0) 2019.08.05
[SuNiNaTaS] 06번 문제  (0) 2018.11.09
[SuNiNaTas] 04번 문제  (0) 2018.10.26
[SuNiNaTas] 03번 문제  (0) 2018.10.26
[SuNiNaTas] 02번 문제  (0) 2018.10.08