묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
수업자료는 어디서 다운받을 수 있을까요?
안녕하세요. 강의 자료 다운로드 하는 곳이 안보여서 문의드려요!
-
미해결해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문
retrun 주소값에 브레이크 포인트 걸고
continue 시 thread is running error 가 뜨는데 이유와 해결법을 잘 모르겠습니다
-
미해결해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문
BP실행 관련 질문드립니다
영상 2:20 부분처럼 return address부분에 브레이크가 걸린 코드가 왼쪽 화면에 떠야 하는데 왜 안 뜨는지 잘 모르겠습니다.. bp가 실행돼서 ret전까지 실행은 잘 된 것 같은데 bp 걸린 부분 까지 실행한 코드를 보려면 어떻게 해야할까요?
-
미해결리눅스 커널 해킹. A부터 Z까지
강의 들으며 정리한 글을 블로그에 공개로 올려도 될까요?
안녕하세요. 강의를 들으며 개인적으로 내용을 정리했는데, 강의가 제공해주신 자료 위주로 진행이 되다 보니 해당 내용을 블로그에 공개로 올려도 되는지 싶어서 여쭤봅니다.
-
미해결해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
디스코드 오류
인프런 이메일 인증 버튼 클릭하면 "Ticket limit reached, You already have 1 tickets open of the 1 allowed for this panel"이 뜹니다.
-
미해결해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
WEB, REV&PWN 두개 과정 동시에 LMS가입이 안되나요?
디스코드에 REV&PWN 트랙으로 발급받았는데 WEB 트랙은 추가로 못받는지 궁금해서 문의 드립니다!
-
미해결해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문
basic_bof.py가 없어요
압축파일을 해제했는데,강사님처럼 파이썬 파일(.py)는 없네요.pwntools도 깔았는데...어떻게 하면 되는지 알려주시면 감사하겠습니다~
-
해결됨이해하면 인생이 바뀌는 Windows API hook
unInjection 관련 질문 입니다.
안녕하세요 injection과 hooking 공부 중 궁금한게 생겨서 질문드립니다.dll을 Injection하고 API hooking한 A라는 함수가 오래걸리는 작업인데(약 10초라 가정) 그 A함수에 진입하였고 그과정에 dll을 unInjection하면 할당한 메모리가 날라가 다음 A함수에 step을 진행하면 프로세스에 영향이가 문제가 있는 걸로 알고 있습니다. 혹시 프로세스에 영향 없이 안전하게 unInjection하는 팁이 있을까요?
-
미해결해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
디스코드 이메일 등록 오류
디스코드 이메일 등록과 과정명 등록 중에'등록 중 오류가 발생했습니다. 관리자에게 문의해주세요.'라는 대답만 돌아오네요.해결 부탁드리겠습니다.
-
해결됨해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
문제풀이 문제가 어디에있죠?
basic asm 1,2,3 문제를 풀고 강의를 시청해주세요 :)문제가 어디 나와있나요?
-
해결됨이해하면 인생이 바뀌는 Windows API hook
네이키드 함수와 트램폴린 관련해서 궁금한 점이 있습니다.
1.훅함수를 꼭 네이키드로 설정해야 하는지 궁금합니다. 그냥 프롤로그 에필로그 포함되게 함수를 작성해도 되는 것 아닌지요?2.검색해보니 훅함수에서 원본함수 사용하는 경우 멀티스레드환경시 원자적 락과 기능저하를 예방하기 위해서 트램폴린 기법을 사용한다고 되어 있는데 강의에 명시된 원본함수의 프롤로그를 다시 임시로 원복하는 방법과는 다르게 훅함수 내에서 원본함수를 다시 호출하여 그 원문을 실행시키고 종료시 스택프레임의 리턴주소정보를 이용해 훅함수로 되돌아가는? 방법이라고 이해했습니다. 이것이 맞는 것인지... 여쭤봅니다.
-
미해결누구도 알려주지 않던 화이트 해커가 되기 위한 로드맵 A to Z
요즘 많이 쓰는 생성형 툴들과 해킹의 관계
요즘 ChatGPT, Gemini, Claude, Grok 등등 많이 쓰는데요. 물론 해킹에도 매우 유용하겠죠? 이런 생성형 툴들은 general하게 유용하겠지만 꼭 한가지 고른다면 오펜스와 디펜스 해킹중 어떤 경우가 더 유리할까요? 궁금하군요. ㅎㅎ 그리고 해킹 관련 질문은 생성형 툴들이 회피하는 경우가 많은데 (특히 ChatGPT) 너무 회피하면 활용성이 떨어진다고 생각하는데 해킹용 생성형 AI도 따로 있나요? KaliGPT 이런거 있으면 좋을듯^^
-
미해결주요정보통신기반시설 2026버전 및 최신 서버버전 Risk 평가
동영상 음성 문제 해결 부탁합니다.
볼륨, 브라우저, 인터넷 연결상태 모두 확인했지만동영상에서 강의 음성이 들리지 않습니다.강의 자체에 문제가 아닌지 확인 부탁합니다.
-
미해결주요정보통신기반시설 2026버전 및 최신 서버버전 Risk 평가
동영상 내 강의자의 음성이 안들리네요....
테블릿, 노트북, 데스크탑에서 다 확인해봤는데,동영상에서 강의자의 목소리가 안들립니다.
-
해결됨해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
log, debug
Logging & Debugging 첫 명령으로 context.log_level = 'debug' 에 대해 설명해주시는데, level이 lovel 이라고 오타가 나있습니다...! (영상 강의)
-
해결됨해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
디스코드
디스코드 초대장을 통해서 들어갔는데 메세지를 불러오지 못했어요. 라고 뜹니다.
-
미해결해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
디스코드 DM으로 이메일/과정명 인증 오류
디스코드 DM으로 인프런 이메일과 과정명을 입력하라고 되어있는데, 과정명을 입력하면 계속 오류가 발생하고 관리자에게 문의하라는 메시지만 나오네요. 확인 부탁드립니다.
-
해결됨해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
Rev-basic-0
BASIC-1은 제대로 나오는데 0이랑 2는 왜 이렇게 나오는 건가요???
-
미해결리눅스 커널 해킹. A부터 Z까지
cred 구조체에 __randomize_layout이 적용된건가요?
cred 구조체 소스코드를 elixir를 통해 확인해보니 다음과 같았습니다. (실습 버전인 5.8.5 기준)struct cred { atomic_t usage; #ifdef CONFIG_DEBUG_CREDENTIALS atomic_t subscribers; /* number of processes subscribed */ void *put_addr; unsigned magic; #define CRED_MAGIC 0x43736564 #define CRED_MAGIC_DEAD 0x44656144 #endif kuid_t uid; /* real UID of the task */ kgid_t gid; /* real GID of the task */ kuid_t suid; /* saved UID of the task */ kgid_t sgid; /* saved GID of the task */ kuid_t euid; /* effective UID of the task */ kgid_t egid; /* effective GID of the task */ kuid_t fsuid; /* UID for VFS ops */ kgid_t fsgid; /* GID for VFS ops */ unsigned securebits; /* SUID-less security management */ kernel_cap_t cap_inheritable; /* caps our children can inherit */ kernel_cap_t cap_permitted; /* caps we're permitted */ kernel_cap_t cap_effective; /* caps we can actually use */ kernel_cap_t cap_bset; /* capability bounding set */ kernel_cap_t cap_ambient; /* Ambient capability set */ #ifdef CONFIG_KEYS unsigned char jit_keyring; /* default keyring to attach requested * keys to */ struct key *session_keyring; /* keyring inherited over fork */ struct key *process_keyring; /* keyring private to this process */ struct key *thread_keyring; /* keyring private to this thread */ struct key *request_key_auth; /* assumed request_key authority */ #endif #ifdef CONFIG_SECURITY void *security; /* subjective LSM security */ #endif struct user_struct *user; /* real user ID subscription */ struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */ struct group_info *group_info; /* supplementary groups for euid/fsgid */ /* RCU deletion */ union { int non_rcu; /* Can we skip RCU deletion? */ struct rcu_head rcu; /* RCU deletion hook */ }; } __randomize_layout;이 중 마지막 __randomize_layout 이 뭔지 찾아보니 커널에서 정의한 매크로이고 구조체의 순서를 랜덤화하는 일종의 보호 기법이라는 것을 알았습니다. 실습을 따라가보니 uid, gid, suid, sgid를 순서대로 덮기 때문에 현재 커널에서 이 보호 기법이 적용되지 않았다는 것을 알 수 있었습니다. 이 매크로의 정의 부분은 총 두 부분이고 다음과 같았습니다.#if defined(RANDSTRUCT_PLUGIN) && !defined(__CHECKER__) #define __randomize_layout __attribute__((randomize_layout)) #define __no_randomize_layout __attribute__((no_randomize_layout)) /* This anon struct can add padding, so only enable it under randstruct. */ #define randomized_struct_fields_start struct { #define randomized_struct_fields_end } __randomize_layout; #endif #ifndef __randomize_layout # define __randomize_layout __designated_init #endif첫 번째 부분에서는 flag처럼 보이는 RANDSTRUCT_PLUGIN 과 __CHECKER__ 에 cross reference(?)가 더이상 안돼서 확인은 못했습니다만, 이게 define 되어있으면 __randomize_layout 매크로를 정의하는 것 같아보입니다. 반대로 flag가 켜져있지 않아 첫 번째 부분에서 매크로 선언이 이뤄지지 않으면 두 번째 부분에서 __designated_init 으로 어쨌든 선언은 되는 것 같습니다. 마지막으로 __designated_init 의 선언 부분을 보면 다음과 같습니다.#if __has_attribute(__designated_init__) # define __designated_init __attribute__((__designated_init__)) #else # define __designated_init #endif첨부는 했지만 어떻게 동작하는건지 잘 모르겠어서 여기부터 이해가 안됐습니다... 제 질문은 다음과 같습니다. 구조체 멤버 랜덤화가 적용되어야 할 것 같은데 강의자님께서 일부러 커널을 빌드할 때 소스코드를 수정하신건가요?아니라면 __designated_init__ 이 없기 때문에 빈 매크로가 할당된 것 같은데, 이게 어떤 플래그이며 어떻게 키고 끌 수 있는건가요?커널 소스코드를 확인할 때 RANDSTRUCT_PLUGIN 과 __CHECKER__ 같이 더 이상 cross reference가 불가능한 경우는 어떻게 값을 확인할 수 있나요?정작 __randoimze_layout 이 붙었을 때 어떻게 메모리 레이아웃을 변경하는지에 대한 로직은 못찾았는데, 이런 부분은 어디서 확인할 수 있을까요?강의자님 경험상 대회나 리얼월드 커널에서 구조체 멤버 랜덤화가 잘 적용되어있는 편인가요? 질문이 길어졌는데, 답변주시면 큰 도움이 될 것 같습니다. 감사합니다.
-
미해결해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문
사이트가 안들어가져요
hacktheworld 사이트가 안들어가져요