| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
- 강의
 - web
 - Basic
 - 라이트업
 - 시탭
 - write up
 - 라이트 업
 - 리버스 엔지니어링
 - 파이썬
 - 해킹캠프
 - vsCode
 - 히공
 - write-up
 - 풀이
 - ShaktiCTF
 - ctf
 - 리버싱
 - 뭉뭉
 - 워 게임
 - 2021
 - 코드엔진
 - 드림핵
 - hackingcamp
 - c언어
 - probgame
 - reversing.kr
 - PYTHON
 - 라업
 - 변수
 - reversing
 
목록ctf (30)
히공
문제 int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [rsp+8h] [rbp-28h] int i; // [rsp+Ch] [rbp-24h] char s[24]; // [rsp+10h] [rbp-20h] BYREF unsigned __int64 v7; // [rsp+28h] [rbp-8h] v7 = __readfsqword(0x28u); printf("Enter the string: "); __isoc99_scanf("%s", s); v4 = 1; if ( strlen(s) != 16 ) { puts("I dont think so XD"); exit(0); } for ( i = 0; s[i]; ++i ) { if (..
문제 이런 사이트다. sql injection으로 count를 올릴 수 있다. from selenium import webdriver url = "http://34.121.84.161:8084/" driver = webdriver.Chrome('chromedriver.exe') driver.get(url=url) driver.implicitly_wait(5) for i in range(500): driver.find_element_by_xpath('//*[@id="guess"]').send_keys("a' or 1=1 --") driver.find_element_by_xpath('/html/body/section/form/input[2]').click() input() 셀레니움으로 빨리 풀 수 있었다. ..
문제 찾아준다. 플래그가 나온다. 플래그 : UMASS{$3CUR3_$70Rag3}
문제 int __cdecl main(int argc, const char **argv, const char **envp) { int i; // [rsp+4h] [rbp-18Ch] __int64 v5; // [rsp+8h] [rbp-188h] __int64 v6; // [rsp+8h] [rbp-188h] char *gets_value; // [rsp+10h] [rbp-180h] BYREF char *v8; // [rsp+18h] [rbp-178h] _QWORD *v9; // [rsp+20h] [rbp-170h] BYREF __int64 v10; // [rsp+28h] [rbp-168h] int v11; // [rsp+30h] [rbp-160h] __int64 v12[8]; // [rsp+40h] [rbp-..
문제다. (마인크래프트 문제, 환경 1.16.5) mc86 init book를 보면 /give @p minecraft:written_book{title:"Init CPU",author:"UD Cyberscholars",generation:0,pages:[ "{\"text\":\"Click Here First\\n\",\"color\":\"dark_green\",\"bold\":true,\"underlined\":true,\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Creating RAM\"},\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~1 ~ ~ minecraft:lime_shulk..
문제 __int64 __fastcall main(int a1, char **a2, char **a3) { char v3; // bl int i; // [rsp+14h] [rbp-2Ch] __int64 v6[5]; // [rsp+18h] [rbp-28h] BYREF v6[2] = __readfsqword(0x28u); puts(a2[1]); v6[0] = *(_QWORD *)a2[1] & 0xFFFFFFFFFFFFLL; printf("%lu\n", v6[0]); for ( i = 0; i
문제 dvm-rev sub_14A3이 가장 중요한 함수다. 이러한 함수다. ida 리모트 디버깅을 쓴다. 인자로는 opcode를 준다. f9를 누른다. jmp rax가 굉장히 중요하다. 아무거나 입력해준다. call하는 부분으로 오게 된다. 안은 이러했다. memcmp로 가는 것을 볼 수 있다. unk_7F4ABDDDFF00 = memcmp 끝나고 rsi 주소로 가보면 여기 주소와 비교하는거다. 코드를 패치하여 검사를 통과하도록 만들었다. 총 3번 입력받는다. opcode : S가 출력되면 입력을 받는다. opcode : P가 출력되면 memcmp를 호출한다. RAX값을 보니 8개를 입력받는 것을 알 수 있다. (read 함수 호출 후) 여기를 보면 sub_1100는 write함수로 이동하는 함수라고 알..
문제 please_analysis_me 파일의 main 함수다. cypher_code가 굉장히 중요해 보였다. 여기서 get_key가 굉장히 중요해 보였다. get_key의 리턴 값이 v7에 들어가는데 v7은 char형이다. 그러면 cypher_code에서는 어떠한 부분을 0x1C로 xor 한다고 볼 수 있다. get_key 함수다. 어차피 char형이 들어가므로 1바이트만 들어간다. 0x1C가 v7에 들어간다. (리틀엔디안) please_analysis_me는 elf 섹션 중 어느 곳을 암호화하는 것 같았다. opps_I_cannot_execute파일을 ida로 열어준다. 코드가 이상하다. shift+f7을 눌러 섹션을 본다. text를 0x1C로 xor 해줄꺼다. 0x1140~0x1AE5 부분 까지 ..