iOS 앱 Cycript를 이용한 동적분석 및 변조
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. iOS 앱 보안진단을 위한 환경설정 iOS 앱 정적 분석하기(class-dump-z, clutch) Objective-C Runtime의 이해와 gdb attach 하기…
읽어보기 →관련 글을 최신순으로 정리했습니다.
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. iOS 앱 보안진단을 위한 환경설정 iOS 앱 정적 분석하기(class-dump-z, clutch) Objective-C Runtime의 이해와 gdb attach 하기…
읽어보기 →문제 자바스크립트 리버싱(?) 문제다.. 소스보기를 하면 아래와 같은 스크립트를 볼 수 있다. <script type="text/javascript"> function boh() { alert(huh(document.formular.pass.value) ? "Righty captain! Enter the password in the box below." : "Not even close!"); } function huh(pw) { var b = Array(8, 0,…
읽어보기 →문제 password 를 묻는 창이 계속 뜬다.. (아주 짜증난다.) proxy tool으로 잡아보니 아래와 같은 소스를 확인할 수 있었다. 우선 url 인코딩된 pass 변수를 변환해보니, 2346ad27d7568ba9896f1b7da6b5991251debdf2 값이 나왔다. 그리고 hex_crypt 함수는를 확인했더니.. http://www.bright-shadows.net/challenges/javascript9/crypt.js var hexcase = 0; var b64pad = ""; var…
읽어보기 →문제 접속해보면 Username 과 Password 를 묻는다. 소스를 보니, JScript.Encode 으로 인코딩된 javascript 가 보인다. http://www.greymagic.com/security/tools/decoder/decoder.asp 를 이용해 인코딩된 js를 디코딩해보면, function checkMe(form) { var user = form.user.value var pass = form.pass.value if ((user == "microcrap") && (pass == "broken")) {…
읽어보기 →문제 접속을 하면 Login to get access! 라는 메세지가 뜬다. 소스를 보면 아래와 같이 js를 include 하는 부분이 확인된다. <script type="text/javascript" src="www.bright-shadows.net/challenges/js/check.js"></script> 해당 소스를 보면.. 정답은 nice_or? 성공
읽어보기 →문제 입력창이다 소스를 보면.. <script type="text/javascript"> function check() { pass = unescape('%44%61%67%6F%62%65%72%74%20%44%75%63%6B'); solution = pass.substr(0,8)+pass.substring(9,13)+pass.substring(8,9); passwd = document.formular.user.value; if (passwd == solution) { window.location.href=solution+".php"; } else { alert("False!!!"); } } </script> 인코딩된 %44%61%67%6F%62%65%72%74%20%44%75%63%6B 부분을 디코딩 해보면 "Dagobert Duck" 이 나오고, solution…
읽어보기 →문제 입력창이다.. 소스를 보니.. <script src="JavaScript"> function testEncode() { var dater = new Date(); Day = dater.getDate(); dater = null; Ret = encode(document.formular.user.value, Day); location = Ret+".php"; } function encode (OrigString, CipherVal) { Ref="0123456789abcdefghijklmnopqrstuvwxyz._~ABCDEFGHIJKLMNOPQRSTUVWXYZ"; CipherVal = parseInt(CipherVal); var Temp=""; for (Count=0;…
읽어보기 →문제 접속하자 마자 No, no, no. Try it again! 이 뜬다.. 소스를 확인해봤다. add 값이 395425559298 되는 year 를 찾는 것이다.. proxy tool 을 이용해 year 값을 변조해가면서 add 값을 확인해 봤다. <script type="text/javascript"> date = new Date(); year = date.getYear();…
읽어보기 →문제 접속하자 마자 password 를 묻는 창이 뜬다. 소스를 보면, 입력값고가 d3, d4 값을 비교한다. 이 부분을 alert으로 확인해보면.. D0D0FF 값이 나오는 것을 확인하고 password에 입력하면 성공
읽어보기 →문제 소스를 보면, 입력값이 warmup 과 일치하는지 확인한다. warmup을 입력하면 성공
읽어보기 →[구매하기] 역시 핵심은 데이터의 의미를 파악하는 것. 그리고 그 데이터를 사용자 입장에서 간결하고 명확하게 전달하는 것이다. 실제 다양한 도구와 데이터로 비주얼라이제이션을 경험할 수 있어서 좋았다. 조금 아쉬운 것은 대상이 데이터 분석가라고 생각했는데, 데이터 분석가가 일러스트나 포토샾같은 부분도 모두 다루는 것이 맞는지..…
읽어보기 →Javascript Visualization Library 참고.. 16 Javascript Libraries for Visualizations : http://datavisualization.ch/tools/13-javascript-libraries-for-visualizations/ Choice Free JavaScript Data Visualization Library : http://kraskniga.blogspot.kr/2012/05/choice-free-javascript-data.html 20 Fresh JavaScript Data Visualization Libraries : http://sixrevisions.com/javascript/20-fresh-javascript-data-visualization-libraries/ Dojo GFX : http://dojotoolkit.org/features/graphics-and-charting gRaphael : http://g.raphaeljs.com/ Google Chart Tools : https://google-developers.appspot.com/chart/interactive/docs/index jqPlot :…
읽어보기 →