반응형
5번 문제
문제 :
올바른 값을 입력하면 되는 문제인 것 같다.
해당 페이지에서 코드를 확인해보면, 다음과 같다.
중간에 javascript가 어렵게 적혀있고(난독화),
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g l=m o(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\');p q(n){g h=\'\';g j=r;s(g i=t;i>0;){i-=4;g k=(n>>i)&u;v(!j||k!=0){j=w;h+=l[k]}}x(h==\'\'?\'0\':h)}',34,34,'||||||||||||||||var|result||start|digit|digitArray|new||Array|function|PASS|true|for|32|0xf|if|false|return'.split('|'),0,{}))
힌트에는 12342046413275659
라고 쓰여 있다.
script는 난독화 되어 있기 때문에,
난독화를 해제해 주는 사이트에서 해제를 해보았다.
난독화 해제 사이트 :
https://www.strictly-software.com/unpack-javascript
위의 코드를 복사해서 붙여주면 다음과 같은 결과가 나온다.
결과 :
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)
}
위의 코드의 PASS 함수에 12342046413275659 를 넣으면,
9c43c20c가 결과로 나온다.
그 값을 넣고 'Check' 버튼을 누르면 성공이다!
반응형