목록분류 전체보기 (420)
외로운 Nova의 작업실
- 명령문 GET GET key 데이터 조회 MGET MGET key [key ...] 여러 데이터를 조회 SET SET key value 새로운 데이터 추가 MSET MSET key value [key value ...] 여러 데이터를 추가 DEL DEL key [key ...] 데이터 삭제 EXISTS EXISTS key [key ...] 데이터 유무 확인 INCR INCR key 데이터 값에 1 더함 DECR DECR key 데이터 값에 1 뺌 INFO INFO [section] DBMS 정보 조회 CONFIG GET CONFIG GET parameter 설정 조회 CONFIG SET CONFIG SET parameter value 새로운 설정을 입력 - radis 서버 키기 redis-server..
이번 문서에는 c++를 어셈블리어로 변환했을때 어떻게되는지 정리해보겠습니다. - 클래스 정적 할당 #include #include #include class Employee { public : int number; wchar_t name[128]; long pay; void ShowData(); void Test(); }; void Employee::ShowData() { printf("number: %d\n", number); printf("name : %s\n", name); printf("pay : %d\n", pay); Test(); return; } void Employee :: Test() { printf("Test function\n"); return; } int main() { Employ..
이번 포스팅은 c언어와 어셈블리사이의 관계에대해서 정리하겠습니다. 특히, if문 for문 case문이 어떻게 어셈블리어로 변환되는지 보겠습니다. 실습환경은 윈도우 10 64비트입니다. - if문 #include int main() { int a = 1; int b = 0; if (a == 1) { a++; } else { b++; } return 0; } #include int main() { 00007FF628941750 push rbp 00007FF628941752 push rdi 00007FF628941753 sub rsp,128h 00007FF62894175A lea rbp,[rsp+20h] 00007FF62894175F lea rcx,[__F4170C15_test@cpp (07FF62895100..
- MongoDB 구성 몽고디비는 database - collection - document - filed순으로 되어있습니다. doucument는 딕셔너리 형태의 값이고 filed는 딕셔너리 형태의 하나의 키와 값을 말합니다. collection은 이 document를 모아두는 저장 창고이며 database는 이 collection을 모아두는 저장 창고입니다. - 명령문 #database 생성 및 사용, 이명령어 이후에는 db객체에 데이터베이스가 담겨 접근할 수 있습니다. use users #users db에 user collection 생성 db.create("user") #user 콜렉션에 어드민 계정추가 document 추가 db.user.insert({"userid" : "admin", "user..
안녕하세요. 이번시간에는 sql injection bypass WAF Advanced 드림핵 문제풀이를 해보겠습니다. - 문제인식 별다른 설명은 없네요.. 문제파일을 보겠습니다. CREATE DATABASE IF NOT EXISTS `users`; GRANT ALL PRIVILEGES ON users.* TO 'dbuser'@'localhost' IDENTIFIED BY 'dbpass'; USE `users`; CREATE TABLE user( idx int auto_increment primary key, uid varchar(128) not null, upw varchar(128) not null ); INSERT INTO user(uid, upw) values('abcde', '12345'); IN..
- 파이썬 특징 1. 문장을 ;으로끝내지 않고 그냥 넘어갑니다. 2. 함수나 if문 for문에서 사용하는 {}를 사용하지않고 : 기호 이후 들여쓰기로 구분합니다. - 함수 정의 매개변수와 리턴값의 데이터타입을 정의하지않습니다. def searchFlag(param): #추가되는 문자를 찾는 함수 리턴은 추가되는 문자 for i in range(48, 126):#전체검사 if(i == 95 ): continue plus = chr(i) insertParam(param, plus) response = requests.get("http://host3.dreamhack.games:10733", params = param) if("admin" in response.text): return plus for i in..
- 뷰페이저2 뷰페이저는 스와이프 이벤트로 화면을 전환할때 사용합니다. 개발자들은 오랫동운 뷰페이저를 사용했지만 2019년부터는 뷰페이저2를 제공했습니다. 뷰페이저2가 기능이 더 많습니다. 따라서 뷰페이저2를 사용하겠습니다. 프래그먼트를 활요해 뷰페이저를 만들어보겠습니다. - 뷰페이저 선언 그래들 파일에 아래와 같이 선언해줍니다. implementation 'androidx.viewpager2:viewpager2:1.0.0' - 메인액티비티.xml에 뷰페이저가 들어갈 자리 만들어주기 메인액티비티.xml에 viewpager태그를 사용해서 자리를 만들어줍니다 - 프래그먼트 xml 만들어주기 뷰페이저에 들어가 프래그먼트 xml을 만들어주겠습니다. 이름은fragement1.xml fragment2.xml fra..
안녕하세요. 이번시간에는 드림핵 Return to Shellcode 문제풀이를 해보도록 하겠습니다. - 문제인식 강의해서 실습하는 거라 별다른 문제정보는 없습니다. 특히나 지금 wsl로는 실행파일을 다운로드 하지 못해서 checksec을 하기 어려운 부분이 있으므로 강의를 참고하겠습니다. 환경을 보게되면 amd64 아키텍쳐 즉 x8-64 명령어 셋을 사용하고 있습니다. Full RELRO로 BSS를 제외한 곳에 write이 안되지만 스택을 건드릴 것이므로 괜찮습니다. 카나리를 사용중이고 NX가 사용중이지 않아서 스택에 쉘코드를 넣고 실행해야할 것 같습니다. PIE가 실행중이여서 실행마다 buf의 주소는 변할 것 같습니다. 이제 코드를 보겠습니다. // Name: r2s.c // Compile: gcc -..
- 리사이클러 뷰 일반적으로 앱을 사용하다 보면 여러가지 항목을 나열하는 목록 화면이 많다는 것을 알 수 있습니다. 리사이클러 뷰는 이러한 목록 화면을 만들때 사용합니다. 아래와 같은 상황을 말합니다. 리사이클러 뷰는 뷰 홀더라는 틀을 만들고 그 틀에 어댑터가 값을 넣어주고 이후 레이아웃매니저가 여러개 배치해주는 순서로 진행됩니다. 하나씩 만들어보겠습니다. - 리사이클러 뷰 선언 먼저 리사이클러를 사용하겠다고 그래들 파일에 선언해줘야합니다. implementation 'androidx.recyclerview:recyclerview-selection:1.1.0' - 리사이클러를 메인 xml에 등록 메인 xml에 키사이클러 태그를 사용하여 들어갈 자리를 정해줍니다. - 리사이클러의 틀을 xml로 만들기 이제..
- 프래그먼트 프래그먼트란 액티비티 화면을 구성하는 뷰입니다. 프래그먼트가 다른 뷰와 다른점은 액티비티 처럼 동작한다는 것입니다. 프래그먼트는 아래와 같이 사용됩니다. 프래그먼트는 아래와 같이 구현됩니다. - 프래그먼트 구현 먼저 프래그먼트를 사용하겠다고 그리들 파일에 선언해줘야합니다. dependencies { ... implementation 'androidx.fragment:fragment-ktx:1.5.5' } 이제 프래그먼트를 만들어보겠습니다. 프래그먼트의 xml을 먼저 만들어주겠습니다. 아래는 fragement1.xml입니다. 위와 같은 프래그먼트를 2개 더 만들어 줍니다. 이름은 fragment2.xml fragement3.xml입니다. 이제 프래그먼트를 화면에 띄우는 kt파일을 만들어줍니다..