묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨C개발자를 위한 최소한의 C++
네가지 형변환 강의 질문
제가 c++ 강의를 보면서 무언가 빼먹은거 같아서 질문을 드려봅니다...강의 설명 중 3분즈음에 등장하는 const_cast를 설명하실 때 궁금한 내용입니다.const MyData& rdata = a; 일때rdata의 멤버접근을 할 수 있는거는 const 키워드가 붙은것만 가능하다고 하셨는데그 자세한 이유가 궁금합니다 <상수형 참조가 상수형 메서드만 호출>
-
해결됨C개발자를 위한 최소한의 C++
CMyString Step10 강의 질문
강의 2분 50초 쯤에 등장하는virtual void onSetData(const char*& pParam)에서 포인터 변수의 값을 바꾸기 위해 &참조자를 추가하셨습니다.const가 붙은 시점에서 연산자 우선순위가 어떻길래 값이 변경가능해진 것인지 궁금합니다!
-
해결됨[보안] Wazuh+ELK(SIEM)를 활용한 위협헌팅(Threat Hunting) 시스템 구축 및 운영실습 (기초)
실습파일 다운로드 링크 비밀번호가 틀리다고 나옵니다.
✨ 질의 안내선수 지식이 부족하더라도 걱정하지 마세요. 강의를 통해 필요한 내용을 차근차근 배워나갈 수 있습니다.각 항목별 추천 자료를 통해 기본 지식을 탄탄히 하면 강의 내용을 더 깊이 있게 이해하고 활용할 수 있습니다.디스코드 또는 인프런으로 질문주시면 바로 답변드리겠습니다디스코드 채널 :https://discord.gg/uCQEnRaSMG
-
해결됨C개발자를 위한 최소한의 C++
임시 객체와 보이지 않는 복사 생성 강의 질문
임시 객체 개념 자체가 많이 낯설어서 2가지 질문을 해보려고 합니다 ㅠㅠ클래스가 함수의 매개변수나 반환자료형일 경우, 상수형 참조를 하라고 하셨는데특별히 이렇게 해야하는 이유가 있는걸까요??19분쯤에 등장하는 예제에서 함수의 매개변수를 상수형 참조로 바꿔도 여전히 변환생성자가 불러와지는 걸 봤을 때는 특별히 차이점이 있어보이지 않습니다... 17분 50초 쯤에 등장하는 '비const 참조는 lvalue에만 바인딩할 수 있습니다" 라는 오류가 등장하는데 이 오류가 이해가 되질 않습니다..
-
해결됨C개발자를 위한 최소한의 C++
섹션8 3번째 강의 (실습 프로젝트 - 문자열 필터개선) 질문
void CMyStringEx::onSetData(const char*& param) { cout << "CMyStringEx::onSetData" << endl; if (param != nullptr) { if (strcmp(param, "FORBID") == 0) { param = "****"; } } CMyString::onSetData(param); return; }실습 코드 관련 질문입니다파라미터가 const char*& 로 되어있는데 아래 param = "****" (강의 코드기준 param="우리귀요미")처럼 매개변수에 대입을 하는 부분이 있는데 const가 붙어있어도 매개변수 값 수정이 가능한가요?
-
해결됨C개발자를 위한 최소한의 C++
차이점을 잘 모르겠습니다.
주신 프로그램 중 constructSelect.cpp 에서 디폴트 생성자를 지우면 에러가 발생하는데 virtualFunction 에서는 디폴트 생성자가 없어도 동작합니다. constructSelect.cpp 에서 선언 방식이 아닌 new 연산자를 사용해서 해봐도 에러가 발생하고객체 내에 멤버메서드가 없어서 그런가 해서 멤버를 만들어도 에러가 발생합니다VirtualFunction 내의 소멸자의 virtual 을 제거해도 이건 잘 작동합니다.눈으로 봐서는 도저히 차이점을 모르겠습니다.
-
해결됨C개발자를 위한 최소한의 C++
이동생성자 관련
안녕하세요. 선생님 이동 생성자 강의 내용 중 질문이 있습니다. (아래 코드 참고) delete pnData를 하면, 포인터 변수가 해제되어pnData = rhs.pnData;를 실행할 수 없는 것이 아닌지 궁금합니다. 실재로는 포인터 값은 그대로고, 가리키는 값(int 0)만 삭제되는 것인가요? 포인터 값은 놔두고 가리키는 값만 없애는 문법은 어떻게 되나요? delete를 안하고, pnData = nullptr; 로만 수정해도 됬을 것 같습니다. class TestData { public: TestData(){ pnData = new int(0); } ... TestData(TestData&& rhs) noexcept{ delete pnData; pnData = rhs.pnData; rhs.pnData = nullptr; } ... TestData& operator=(TestData&& rhs) noexcept{ delete pnData; pnData = rhs.pnData; rhs.pnData = nullptr; } }
-
해결됨C개발자를 위한 최소한의 C++
new/ delete 질문
포인터 new 시, 주소값과 가리키는 Data 메모리도 동시 할당되나요?포인터 delete 시, 주소값과 가리키는 Data 도 메모리도 해제? 혹은 주소값만 해제되나요?
-
해결됨C개발자를 위한 최소한의 C++
반환유형이 클래스형 참조
안녕하세요 강사님, 반환 유형이 클래스 참조일 때 질문이 있습니다.반환유형이 클래스형인 것보다는 메모리 효율을 위해서 클래스형 참조로 선언을 하는데, 반환하는 참조가 함수 내부에서 생성된 지역 인스턴스의 참조라면 함수 스코프를 벗어나면 해당 인스턴스는 소멸되므로 main함수에서는 참조를 못하게 되는 것 아닌가요?이런 경우에는 반환 유형을 클래스형 참조가 아닌 클래스형으로 선언하는게 적절할까요? 감사합니다!
-
해결됨C개발자를 위한 최소한의 C++
임시객체와 관련하여 질문드립니다
강사님 복사 생성자에서 만들어지는 임시객체와 이동생성자에서 만들어지는 임시 객체의 차이를 아무리 테스트해도 모르겠읍니다. 두 생성간에 사용자가 처리하는 로직만 틀릴 뿐인지요? 아울러 선언으로 생성되는 클래스 인스턴스는 스택에 생성되고 new로 생성되는 인스턴스는 heap에 생성되는건지요?
-
해결됨C개발자를 위한 최소한의 C++
강사님 질문 드립니다.
만약 함수내에서 func(ClassA a) { // 여기서 a 는 클래스임 } 과 같이 작성하면 ClassA 의 생성자는 호출되지 않지만 소멸자는 호출됩니다.그 이유를 알고 싶습니다.
-
해결됨C개발자를 위한 최소한의 C++
virtual 함수와 관련하여 질문 있습니다.
만약 기본 메서드로 virtual a() 를 정의한 후 첫번째 파생 클래스에서는 a() 로 정의를 하였습니다.마지막 파생 클래스에서도 a() 로 정의했다면 어떻게 동작하는지 궁금해서 여쭤 봅니다. 제 생각에는 기본하고 첫번째 파생 사이에는 virtual 처럼 즉 기본을 호출해도 파생이 호출될 거 같은데두번째 파생시에는 virtual 의 성격이 사라질 거 같습니다. 확인 부탁드립니다. 강사님
-
해결됨C개발자를 위한 최소한의 C++
생성자와 소멸자의 호출
04_Constructor 테스트 중에 질문 드립니다.Test test01; 과 같이 선언하면 생성자와 소멸자가 모두 호출되는데Test test02 = new Test(); 와 같이 호출하게 되면 소멸자는 호출되지 않습니다. 그 이유가 뭔지 궁금합니다.친절한 강의 감사드립니다.
-
해결됨C개발자를 위한 최소한의 C++
강사님 질문 드립니다.
opArithmetic 교육시에 "=" 오퍼레이터의 반환자를 *this 로 하지 않으면 문제가 생길거라 하셨는데 구체적인 문제 설명이 없으셔서 궁금합니다.
-
해결됨C개발자를 위한 최소한의 C++
강사님 질문 드립니다.
임시객체와 보이지않는 복사생성 과정 프로그램에서- 제가 임의로 복사생성자 부분의 프로그램을TestData(const TestData& rhs){ cout << "TestData(const TestData&)" << endl;}- 위와 같이 수정하고- F11키로 디버깅 추적을 해보면 복사생성자가분명 위의 생성자에서는 nData 를 접근하는 명령이 없는데도 아래 부분에 있는private 😀int nData = 0;부분을 수행합니다.왜 그런지 질문 드립니다. 아울러 제가 초기화 부분 "= 0" 를 없애 버리면 수행되지 않습니다.
-
미해결맥으로 배우는 윈도우즈 포렌식
xmount 설치가 안됩니다.
M1 macbook air입니다.강의에 나와있는대로 xmount pkg를 활용해 설치하려 했는데 FUSE missing 에러가 발생하면서 설치되지 않고, brew install xmount명령어로도 설치되지 않네요. xmount가 intel 버전까지만 지원하는것 같던데, m1 맥 사용자의 경우에 대체로 설치할 수 있는 프로그램이 뭐가 있을까요?FUSE까지 설치 했지만, terminal에서 xmount명령어가 먹히지 않습니다.
-
해결됨C개발자를 위한 최소한의 C++
R-value 참조에 대해서 질문이 있습니다.
r-value 참조에 대해서 질문이 있습니다. (02-rvalueRef 예제 강의 기준 r-value 참조 (임시 객체와 유효범위) 8분)코드를 포인터를 볼 수 있게 조금 수정했습니다.int testFunc(int param){ int result = param * 2; std::cout << &result << std::endl; return result;}int&& result = testFunc(10); std::cout << result << "pointer: " << &result << std::endl;임시 객체의 주소를 지우지 않고 가져다 쓰는것이라 하셔서 testFunc 함수의 return 하는 result 의 포인터를 확인 후 받는 result의 포인터가 같은지를 확인해 보았습니다. print된 2개의 result의 포인터 값이 다른 것을 확인했습니다. 혹시 임시 객체라는 것이 함수의 return result 값을 또 다른 포인터로 옮긴 뒤 받기 때문에 return result와 다르게 되는건가요?
-
미해결[보안] Wazuh+ELK(SIEM)를 활용한 위협헌팅(Threat Hunting) 시스템 구축 및 운영실습 (기초)
웹사이트에 파일 업로드가 안됩니다.
05_시나리오 #2 (리눅스 웹쉘, 디페이스 공격) 실습 중입니다.구체적으로 이제 web.py 실행하여 웹페이지에 deface.py를 업로드를 하는데 자꾸 No file provided라고 메시지가 출력됩니다. web.py를 아래와 같이 수정해서 어떤 오류가 나타나는지 확인했고from flask import Flask, request, render_templateimport osimport subprocessimport loggingfrom logging.handlers import RotatingFileHandlerapp = Flask(__name__, template_folder='./uploads')log_location = "/home/wazuh/flask_app.log"logging.basicConfig(filename=log_location, level=logging.INFO)handler = RotatingFileHandler(log_location, maxBytes=10000, backupCount=3)formatter = logging.Formatter("[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s")handler.setFormatter(formatter)app.logger.addHandler(handler)@app.route('/', methods=['GET'])def index(): return render_template('index.html')@app.route('/execute', methods=['POST'])def execute_file(): app.logger.info(f"Files: {request.files}") app.logger.info(f"Form Data: {request.form}") file = request.files.get('file') if file: filepath = f"./uploads/{file.filename}" file.save(filepath) os.chmod(filepath, 0o755) try: output = subprocess.check_output(filepath, shell=True).decode('utf-8') return f"Output: {output}" except Exception as e: return f"Error executing file: {str(e)}" return "No file provided"if __name__ == '__main__': app.run(debug=True)아래는 flask_app.log 입니다ImmutableMultiDict([]) 이라고 나타나는것을 볼 수 있는데 클라이언트로부터 전송된 파일이 없다고 말합니다.웹페이지는 아래와 같습니다.
-
해결됨[보안] Wazuh+ELK(SIEM)를 활용한 위협헌팅(Threat Hunting) 시스템 구축 및 운영실습 (기초)
virustotal 코덱 문제 해결 요청합니다.
안녕하세요 이번 실습부터 갑자기 wazuh 서버로 이벤트 로그를 잘 보내던 Windows 클라이언트로부터 더 이상 이벤트를 받지 못하고 있습니다. 도와주셨으면 합니다.둘이 서로 네트워크 연결 문제 및 설정이 제대로 되어있는지 확인 및 에이전트 / 서비스 재시작을 다수 해봤으며, 에러로그는 아래와 virus total codec 문제인것을 볼 수 있었습니다. 지금 alerts.log는 virustotal 다른 사람들의 결과물에 비해 좀 부실하게 작성되어서 나와있길레 가져왔습니다. (해당 로그에서 시스템 무결성 체크나 netstat 명령을 가져오는건 잘 보입니다.) 또한, 강좌에서 나온것 처럼 sysmon 이벤트로그에서 calc, vss 관련로그도 정상적으로 등장하는것을 확인했습니다. -wazuh server-/var/ossec/logs/ossec.log2024/01/25 03:07:15 wazuh-integratord: ERROR: Unable to run integration for virustotal -> integrations2024/01/25 03:07:15 wazuh-integratord: ERROR: While running virustotal -> integrations. Output: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 1481: invalid start bytevar/ossec/logs/alerts/alerts.log** Alert 1706119676.269841153: - virustotal,2024 Jan 25 03:07:56 (DESKTOP-8KIVUDS) 윈도우IP->virustotalRule: 87103 (level 3) -> 'VirusTotal: Alert - No records in VirusTotal database'{"virustotal": {"found": 0, "malicious": 0, "source": {"alert_id": "1706119670.269839011", "file": "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\bam\\State\\UserSettings\\S-1-5-21-2409306197-2214590480-1851912469-1000", "md5": "a1d87ba945282fbbd3276dc1b9918a23", "sha1": "4b6965b3c854f07763683c778774221fecf263b4"}}, "integration": "virustotal"}virustotal.found: 0virustotal.malicious: 0virustotal.source.alert_id: 1706119670.269839011virustotal.source.file: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\bam\State\UserSettings\S-1-5-21-2409306197-2214590480-1851912469-1000virustotal.source.md5: a1d87ba945282fbbd3276dc1b9918a23virustotal.source.sha1: 4b6965b3c854f07763683c778774221fecf263b4integration: virustotallocal_rules.xml 파일 설정 내용은 아래와 같습니다. <!-- Sysmon Wazuh Rules version 1.0--><group name="local,syscheck,"> <!-- Rule for ZEROMINI_RANSOM_NOTE.txt --> <rule id="100001" level="10"> <decoded_as>json</decoded_as> <field name="syscheck.path">C:\\Users\\User\\Desktop\\ransom_test\\ZEROMINI_RANSOM_NOTE.txt</field> <description>ZEROMINI_RANSOM_NOTE.txt file detected.</description> </rule> <!-- Rule for .koyange extension --> <rule id="100002" level="10"> <decoded_as>json</decoded_as> <field name="syscheck.path">\.koyange$</field> <description>File with .koyange extension detected.</description> </rule></group><group name="sysmon,sysmon_process-anomalies,"><rule id="300001" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.Image">calc.exe</field> <description>Calc process started (possible ransomware simulation)</description></rule><rule id="300002" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.CommandLine">vssadmin delete shadows</field> <description>Shadow copy deletion command detected (possible ransomware simulation)</description></rule><rule id="300003" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.TargetFilename">ZEROMINI_RANSOM_NOTE.txt</field> <description>Ransom note detected (possible ransomware activity)</description></rule><rule id="300004" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.parentImage">python.exe</field> <description>File with python extension detected (possible ransomware activity)</description></rule><rule id="300005" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.CommandLine">ping 8.8.8.8</field> <description>Ping to 8.8.8.8 detected (possible network test or exfiltration attempt)</description></rule></group>
-
해결됨[보안] Wazuh+ELK(SIEM)를 활용한 위협헌팅(Threat Hunting) 시스템 구축 및 운영실습 (기초)
맨마지막 agenetless 제거 시도 시 .passlist가 보이지 않던 이유
28:26 터미널에 ls -al 결과물 보면 zeromini_malware 파일이 있는걸 보면 해당 터미널은 wazuh server 보여주는게 아니라 ssh로 wazuh Linux 가상 머신을 보여주고 있던것 같습니다. 그래서 .passlist 파일이 안보였던것 같습니다.