본문 바로가기

JavaScript의 독특한 난독화 기법인 JSFuck에 대해 알아보자 JSFuck은 난해한 프로그래밍 스타일의 하나로, 오로지 ( ) [ ] + ! 라는 6가지의 문자만 써서 JavaScript의 코드를 구현한다. Martin Kleppe가 개발하였으며 자바스크립트를 해석하는 어떠한 웹 브라우저나 엔진에서라도 실행할 수 있다.Encoding 사이트 참고 : https://jsfuck.com JSFuck - Write any JavaScript with 6 Characters: []()!+ jsfuck.com그렇다면, 해당 문자를 이용해서 함수 실행을 어떻게 할지 단계별로 살펴보자.1단계: 기본 Boolean값 만들기JavaScript에서 빈 배열 []은 truthy이지만, 부정연산자 !를 쓰면 false가 된다.[] // 빈 배열 (truthy)![] ..
유니티 조이스틱(Joystick) 시스템 구현 모바일 게임에서 플레이어를 상하좌우로 움직이기 위한 Joystick 시스템을 구현해 보자. - 엔진 : 유니티- 언어 : C#1. Player Ojbect, Joystick Object, GameManager 생성GameManager는 Joystick Object를 관리하기 위해 생성하였다.Player는 간단한 구체를 생성하였다.Joystick은 패드가 되는 JoystickBase, 손잡이 부분인 JoystickKnob 두 개의 Object를 생성하였다.겉의 반투명한 원이 JoystickBase, 안쪽의 하얀 원이 JoystickKnob 이다.JoystickBase은 Canvas에 생성되어야 하기 때문에 Canvas의 자식 Object로 생성하였다.JoystickBase의 자식 Object로 Joysti..
[Java][programmers] 순위 문제풀이 ※ 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 문제 설명n명의 권투선수가 있고, 1:1로 진행되는 경기 결과의 일부분이 배열 형태로 주어진다.이 때, 정확하게 순위를 매길 수 있는 선수의 수를 반환하도록 구현하는 문제이다.2. 예시입력이 아래와 같이 주어져 있다.n = 5result = [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] ([A, B]는 "A가 B를 이겼다" 는 의미)경기 결과를 보기 쉽게 도식화 하면 아래와같다.(4 -> 3 표..
플로이드-와샬(Floyd-Warshall) 알고리즘 이해하기 최단경로를 탐색하는 플로이드-와샬(Floyd-Warshall) 알고리즘에 대해 알아보자.플로이드-와샬 알고리즘은 그래프에서 모든 정점 쌍 간의 최단 거리를 찾는 동적 프로그래밍(Dynamic Programming) 알고리즘이다. (만약 최단거리의 경로를 구하고 싶다면 복원 로직의 추가가 필요하다.)1. 동작방식의 이해플로이드-와샬 알고리즘의 동작 방식은 아주 간단하다.모든 정점 쌍(i,j)에 대해, 중간 정점 k를 경유하는 경로가 기존 경로보다 짧은지 검사각 단계에서 k번째 정점을 거쳐가는 모든 경우를 고려즉 아래와 같은 세 노드가 있을 때, 기존에 주어진 i → j 의 길이와 노드 k가 중간에 추가된 i → k → j 를 비교하여 i → j 의 길이를 더 작은 값으로 갱신하는 것이다.점화식은 아래와 같..
ASP.NET 웹쉘(Webshell) 코드 분석 본 글에서는 ASP.NET 웹쉘 코드를 분석해 보고자 한다.분석 내용을 통해 어떤 방식으로 웹쉘 스크립트가 구현되는지 전체적인 구조를 이해할 수 있기를 바란다.[기능]분석 대상 웹쉘은 ASP.NET 웹 페이지(.aspx)로 구현되어 있으며, 다음과 같은 주요 기능들을 포함하고 있다.파일 시스템 탐색파일 업로드/다운로드파일 삭제PowerShell 명령어 실행[주요 컴포넌트 분석]1. Namespace Import 파일 시스템 조작(System.IO), 프로세스 실행(System.Diagnostics), 웹 컨트롤(System.Web.UI.WebControls) 기능을 사용하기 위해 관련 Namespace를 Import한다. 2. 디렉터리 탐색 기능string out = ""; string dir = Pa..
Privacy Policy Privacy PolicyThis privacy policy applies to the RunRun app (hereby referred to as "Application") for mobile devices that was created by DongDongStudio (hereby referred to as "Service Provider") as a Commercial service. This service is intended for use "AS IS".Information Collection and UseThe Application collects information when you download and use it. This information may include information..
NXDomain(Non-eXistent Domain)을 이용한 DNS 공격 - NXDomain Flooding Attack, Subdomain Scanning Attack NXDomain(Non-Existent Domain)NXDomain은 "Non-Existent Domain"의 약자로, 요청된 도메인이 존재하지 않는다는 DNS 응답을 의미합니다. 사용자가 잘못된 도메인을 입력했을 때 DNS 서버는 NXDomain 응답을 보내게 됩니다. NXDomain과 관련된 공격으로는 NXDomain Flooding Attack과 Subdomain Scanning Attack이 있습니다.NXDomain Flooding Attack과 Subdomain Scanning Attack은 NXDomain을 이용한 DNS 공격이지만 그 목적에 차이가 존재합니다.NXDomain Flooding AttackNXDomain Flooding Attack은 대량의 NXDomain 요청을 통해 DNS 서..
[Java][programmers] 표현 가능한 이진트리 완전상세분석 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명본 문제는 입력값으로 주어진 10진수의 값이 주어진 조건에 의해 이진법 형태로 변경 후 이진트리의 형태로 구현될 수 있는가를 묻는 문제이다. 주어진 예시를 다시 한 번 살펴보면 다음과 같다.예시1) [7,42,5]7은 이진법으로 111로 나타낼 수 있다. 이것을 완전이진트리로 나타내면 아래와 같이 간단하게 표현할 수 있다.42는 이진법으로 101010 로 나타낼 수 있다. 이것..