본문 바로가기
반응형

-57

JAVA프로그래밍 Scanner 클래스 정수 입력받아 합 출력하기 JAVA 프로그래밍 2개의 정수를 입력 받아 더한값을 출력합니다. Scanner 클래스를 이용해 사용자 입력값을 받아 더하는 소스코드입니다. 출력값 콘솔 확인 1과 2를 입력받아 결과값 3이 출력됩니다. import java.util.Scanner; // 입력을 받기 위해 필요한 패키지 Import public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 인스턴스 생성 int a = sc.nextInt(); int b = sc.nextInt(); // 2개의 숫자에 대한 변수 선언 System.out.printf("%d",a+b); // 출력 시 두 변수 값의 합 } } 2023. 1. 28.
자바(JAVA)프로그래밍 점수 입력 받아 등급 출력하기 사용자 입력값 점수를 받아서 90점 이상 A 80점 이상 B 70점 이상 C 60점 이상 D 그 외 점수는 F를 출력하는 프로그래밍 import java.util.Scanner; // Scanner 입력을 위한 패키지 public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int score = sc.nextInt(); // 점수를 입력받을 변수 정의 if(score>=90 && score=80) { System.out.println("B"); } // 80점 이상이면 B 출력 else if(score>=70) { System.. 2023. 1. 21.
리눅스(LINUX) 계정 그룹 추가 및 기본그룹과 보조그룹 개념 리눅스는 UID(계정명)값과 GID(그룹명)값이 존재합니다. 우리한테는 문자열로 보이지만, OS에서는 정수 값으로 권한을 식별하게 됩니다. 1) 소유주 권한 2) 그룹 권한 3) 그 외 사용자권한 사용자는 무조건 하나의 그룹을 갖게 됩니다. test라는 하나의 계정을 생성하면 test 계정과 test 그룹을 기본적으로 생성되는데 이때 생성되는 그룹이 '기본그룹' 입니다. 파일을 생성하거나 디렉토리를 생성할 때 부여되는 그룹입니다. root 계정을 예시로 보면 groups=0(root) 기본 그룹 root 하나만을 가지고 있습니다. root 계정으로 생성된 파일이기 때문에 그룹명은 root로 되어 있습니다. /etc/group 파일은 모든 그룹에 대한 정보를 저장하고 있는 파일입니다. 4개의 필드로 구성 .. 2023. 1. 14.
파이썬 입문 툴 파이참(PyCharm)설치 및 파이참 간단 사용법 "파이참 설치 및 사용법" 파이썬은 C/C++/JAVA 등과 같은 프로그래밍언어 중 하나입니다. 처음 프로그래밍언어를 접할때 쉽게 접근할 수 있는 언어입니다. 구글/인스타그램 등 파이썬이 사용된 곳이 많을 정도로 강력한 대세언어인건 틀림 없습니다. 해킹관련 툴도 파이썬으로 제작된것이 많기 때문에 정보보안에 빠질 수 없는 언어입니다. https://www.jetbrains.com/ko-kr/pycharm/ PyCharm: JetBrains가 만든 전문 개발자용 Python IDE www.jetbrains.com 위의 링크로 접속하시면 Windows / Mac / Linux OS 별로 Professional / Community 2가지로 나뉘게 됩니다. Professional - 유료 Community - .. 2023. 1. 7.
레드햇 엔터프라이즈 리눅스 RHEL 6.8 64bit VM 설치 가이드 레드햇 엔터프라이즈 리눅스 RHEL 6.8버전 64bit VM 설치 가이드입니다 Create a New Virtual Machine 선택 Typical (recommended) 선택 I will install the operating system later. 선택 Linux 선택 후 Version 선택(준비한 ISO파일 버전 및 bit 선택) VM 이름 및 설치 경로 지정 VM에 할당 할 Disk Size 지정 후 Store virtual disk as a single file 선택 Edit virtual machine settings 클릭 CD/DVD (SATA) 선택 후 Use ISO image file 지정(이미지 파일 지정) 필요에 따라 Network Adapter를 추가하거나 Memory를 변경.. 2022. 12. 30.
파이썬(Python) 프로그래밍 기초 자료형 사칙연산 주석 방법 파이썬이란? "1990년 암스테르담의 귀도 반 로섬이 개발한 인터프리터 언어" ※ 인터프리터 언어: 한줄 한줄씩 소스코드를 해석해서 그때 그때 실행 결과를 바로 확인 할 수 있는 언어 인스타그램, 드랍박스, 구글 소프트웨어등 에서 사용 되고 있다 1. 문법이 간결하고 쉽게 배울 수 있다 2. 오픈소스이다 3. 개발속도가 빠르다 4. 대소문자를 구분 한다 ※ 오픈소스 : 저작권자가 소스코드를 공개 해 누구나 별다른 제한 없이 자유롭게 사용, 복제, 배포, 수정 할 수 있는 소프트웨어 a = 123456 a = -123456 a = 0 a = 123.456 a = -123.456 숫자0과 알파벳o를 앞에 명시하면 8진수 자료형 숫자0과 알파벳x를 앞에 명시하면 16진수 자료형 a = 10 , b = 6 //.. 2022. 12. 23.
[MYSQL ERROR] java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp 위의 에러는 JDBC를 통해 Mysql Select 질의 시 발생 됩니다. Mysql Table의 DateTime컬럼에 접근 시 발생되는 에러인데 해당 컬럼의 Default 값을 0000-00-00 00:00:00으로 정의가 되었을 시 Connector/J driver에서 에러로 간주하여 실행 시 에러가 발생합니다. 해당 컬럼의 정의를 변경하거나 JDBC DB URL를 변경하여 해결 할 수 있습니다. jdbc:mysql://1.1.1.1:3306/mysql?zeroDateTimeBehavior=convertToNull jdbc:mysql://1.1.1.1:3306/mysql 일반적인 JDBC URL에서 ?zeroDateTimeBehavior=convertToNull 위의 Null 변환 옵션을 추가하면 해.. 2022. 12. 17.
자바(JAVA) 반복문 for문 사용법 구구단 소스코드 JAVA에서 제공하는 반복문 3가지 1) for문 2) while문 3) do - while문 이 중 가장 많이 사용 되는 것은 for문 입니다. for (초기화식 ; 조건식 ; 증감식){ 반복 할 실행 명령문; } "초기화식"은 최초에 한번만 실행되며, "조건식"이 true이면 명령문을 실행한 뒤 증감식순으로 진행이 됩니다. public class FotTest { public static void main(String[] args) { // TODO Auto-generated method stub for(int i=2; i 2022. 12. 8.
리눅스(LINUX) SELinux 영구 비활성화/임시 비활성화/종료 상태 확인 리눅스 초기 설치 후 OS 방화벽과 SELinux를 비활성화 하는것을 권장한다. #sestatus SELinux status : enabled Current mod : enforcing 현재 상태와 동작 모드를 확인 할 수 있다. 비활성화 방법 2가지 1) 영구 비활성화 (OS reboot 필요) #vi /etc/selinux/config SELINUX=disabled 수정 #reboot #sestatus reboot 후 영구적으로 비활성화 시키는 방법이다. 2) 임시 비활성화(OS reboot 불 필요) 당장 reboot이 불가한 상황일 때 임시 비활성화를 해주면 된다. #setenforce 0 #sestatus Current mode : permissive 변경 확인 임시 비활성화이기때문에 재부팅 시.. 2022. 12. 2.
정보보안기사/산업기사 무료 인강 알기사 추천 + 필기 요약 정리 정보보안(산업)기사 무료 인강 "알기사" 큰 숲을 한번 정리하고 시작하기에 좋은 구성의 강의이다. https://sec.algisa.com/lecture/movieLectureDetail.html?menuId=1-3&subNo=7&leftMenuLType=T126&searchLeccode=D201900005&LEARNING_CD=T126&lecKType=D 국가 기술 자격증 NO.1│지안에듀 자격증 배송 단계 · 결제완료, 상품준비중 단계까지 주문 수정(주문취소, 배송지 변경)이 가능합니다. · 배송시작 단계부터 주문 수정이 불가능하며 단순 변심으로 인한 환불 요청 시 왕복 배송비가 부 sec.algisa.com 위의 링크에서 무료로 수강이 가능하다.😉 총 4강으로 구성 어떻게 공부해야하는지 접근법에 대.. 2022. 12. 1.
리눅스 CentOS7 본딩(Bonding) 설정 및 본딩 상태 확인, fail over 테스트 방법 CentOS7 본딩 설정 가이드 #cat /etc/redhat-release 메이저 버전마다 본딩 설정 방법이 조금씩 상이하므로 본딩 설정 전 리눅스 버전을 사전에 확인하는 것이 좋다. #ifconfig -a 네트워크 인터페이스를 확인하여 사용 가능한 인터페이스 2개 확보(ens33, ens37) #cd /etc/sysconfig/network-scripts #pwd #ls ifcfg-* 네트워크 본딩 설정을 하기 위해서 /etc/sysconfig/network-scripts 경로로 이동한다. #cp ifcfg-ens33 ifcfg-ens37 #cp ifcfg-ens33 ifcfg-bond0 #ls ifcfg-* 기존에 존재하는 ifcfg-ens33 파일을 ifcfg-ens37 파일1개, ifcfg-bo.. 2022. 11. 30.
C언어 정수 입력 컴파일 에러 코드 'scanf': This function or variable may be unsafe 키보드로부터 2개의 정수를 입력 받아 합을 구하기 위해서는 "scanf 함수"를 사용해야 합니다. 최근에는 scanf 함수가 보안적인 이슈가 많아 scanf 함수를 사용하게 되면 컴파일 시 아래와 같이 에러가 발생합니다. C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. scanf는 안전하지 않으니, scanf_s의 사용을 권장하는 에러코드 입니다. scanf_s 함수는 scanf 함수 사용법과 동일하여 어렵지 않습니다. 콘솔에서 2개의 정수를 입력 받아.. 2022. 11. 28.
[Script] 리눅스 쉘 종류와 사용중인 쉘 확인 [Script] 리눅스 쉘 종류와 사용중인 쉘 확인 BASH(Bourne-Again Shell) /bin/bash 리눅스에 기본 탑재된일반적인 쉘, sh쉘과 호환이 되기때문에 sh와 bash에서 모두 실행 됩니다. CSH(C Shell) /bin/sh C프로그래밍 언어와 유사한 쉘 문법 KSH(Korn Shell) /bin/ksh 표준환경이 적용되어 있는 사용자 중심 쉘 TCSH /bin/tcsh 일반적인 C 쉘이며 속도가 빠르고 UNIX C 쉘과 호환 - 현재 사용중인 쉘 종류 확인 1. echo $SHELL 2. ps $$ 3. echo $$ $변수는 현재 쉘의 프로세스 아이디(PID)를 가지는 변수입니다. 2018. 5. 5.
[네트워크] 핑(Ping) 과 트레이스(Trace) 네트워크에서 핑과 트레이스는 중요한 한부분입니다. 그림에서처럼 네트워크가 구성되어 있을때, 라우터 C에서 라우터 A의 이더넷 172.70.100.1 으로 핑을 보내게 되면 RouterC# ping 172.70.100.1 이런방법을 '단순핑' 이라고 합니다. 단순핑 같은 경우는 목적지주소는 적어줄수 있으나 출발지주소는 정할수가 없습니다. 라우터C의 시리얼 203.210.200.2 로 고정이 되어있죠. 출발지 주소를 변경할수 있는 핑이 '확장핑' 입니다 그냥 ping 명령어를 치게되면 출발지주소, 목적지주소,Echo패킷의 수, 크기 등을 지정해줄수가 있습니다. 이렇게 출발지, 목적지뿐만 아니라 중간에 거친 경로에 대한 정보랑 소요시간까지 볼 수 있는 것이 트레이스(Trace) 명령어 입니다. 트레이스 명령은.. 2017. 8. 6.
[네트워크] 네트워크 STP(스패닝 트리 프로토콜) 네트워크장비 '스위치'를 공부하다보면 STP라는 용어가 나옵니다. STP란? Spanning Tree Protocol 의 약자입니다. 그렇다면 스패닝 트리 프로토콜은 무엇일까요? 흔히 네트워크를 구성할 때 스위치와 라우터로 구성하게 됩니다. 우선 라우터를 신경쓰지않고 스위치부분만 보겠습니다. 이해를 돕기 위해서 이미지는 구글에서 가져왔습니다. 일반적으로 사람들은 출발지부터 목적지로 갈수있는 길이 여러개라면 어디로갈지 고민하게되고 생각이 많아지게됩니다. 네트워크장비도 마찬가지로 출발지부터 목적지까지의 스위치의 경로가 2개 이상이라면 방황을 하게됩니다(Looping) 하지만 일반적으로 네트워크를 구성할 때 한쪽 경로가 문제가 생기면 돌아갈수있도록 2개의 경로를 만드는 실수를 많이 하게됩니다. 이런 문제점(L.. 2017. 8. 6.
[네트워크] 이더넷과 토큰링 네트워크의 구성방식에는 크게 이더넷방식과 토큰링방식이 있습니다. 이더넷방식은 CSMA/CD라는 기술을 사용하게됩니다. 쉽게 말하면 충돌을 감지한다는 것입니다. 한 네트워크상에 A라는 호스트가 통신을 하고있는것이 감지된다면 B라는 호스트는 통신을 하고싶어도 A라는 호스탁 통신이 끝날때까지 기다리게되며 A라는 호스트가 통신이 끝난것을 감지하면 B라는 호스트는 통신을 하게됩니다. 그렇지만, C라는 호스트도 A호스트가 통신이 끝날때까지, 기다리다가 통신이 끝난것을 감지하여, B호스트와 C호스트가 동시에 통신을 하게되면 어떻게될까요? 두 호스트가 충돌이 나게됩니다. 그런경우 랜덤한시간동안 기다렸다가 다시 통신을 시도하게 됩니다. 이더넷방식은 충돌이 불가피하다고 볼 수 있습니다. 반대로 토큰링방식은 말그대로 호스트.. 2017. 8. 6.
[네트워크] 네트워크 기초 인터넷은 이제 없어서는 안 될 존재가 되었습니다. 인터넷 - 인터(Inter) 넷(Network) 서로의 네트워크를 연결시켰음을 의미합니다. 우리가 사람들과 한국어로 소통을 하듯 네트워크도 통신하는 언어가 필요합니다. 네트워크에서 통신하는 언어를 '프로토콜'로 생각하시면됩니다. 인터넷에서는 TCP/IP라는 프로토콜을 사용하게되며 그 밖의 IPX, AppleTalk 여러 프로토콜이 있습니다. 종종 듣게되는 인트라넷, 엑스트라넷도 동일하게 TCP/IP 프로토콜을 사용하여 통신하게 됩니다. 인터넷과 달리 인트라넷은 사내에서만 사용하는 네트워크를 의미하며, 엑스트라넷은 사내구성원들을 포함하여, 협력업체까지 사용하게되는 네트워크를 말합니다. 2017. 8. 6.
[리버싱] 기본 어셈블리 명령어 [리버싱] 기본 어셈블리 명령어 MOV : 데이터를 복사해준다, == 대입의 의미로 봐도 됩니다. 피연산자는 2개가 필요하며, 피연산자의 구분은 , 로 합니다. 첫번째 피연산자는 제 1피연산자, Destination 오퍼랜드라고 한다. 두번째 피연산자는 제 2피연산자, Source 오퍼랜드라고 한다. Source 오퍼랜드의 값을 Destination 오퍼랜드에 대입한다. * MOVZX, MOVSX = 소스 오퍼랜드 사이즈보다 데스티네이션 오퍼랜드 사이즈가 더 큰 경우 발생합니다. ZX는 남은 빈공간을 0으로 채워줄 때(부호는 쓰지 않는다는 의미) SX는 소스 오퍼랜드의 최상위 비트에 맞춰서 쓸 때(부호를 쓰겠다는 의미) TIP) 리버싱의 목적은 어셈블리어로 코딩을 하는게 목적이 아니므로, 보고 빠르게 분.. 2017. 7. 29.
[리버싱] 알아야 할 주요 레지스터 [리버싱] 알아야 할 주요 레지스터 ### Register ### 연산 처리 및 번지지정을 도와줌 컴퓨터의 장치들을 제어함. 레지스터들도 종류가 나뉩니다. General Purpose Register (범용 레지스터) : 일반적인 목적으로 쓰임 -EAX : 연산의 결과값이 저장되는 레지스터, 함수의 리턴값이 저장되기도 한다. - EBX : 주소연산 결과값이 저장 된다, 흔하게 사용되지는 아니함. - ECX : 반복의 횟수를 저장 - EDX : EAX 레지스터의 보조역할을 수행한다. 예를들면, 나누기 연산 수행 시 몫은 EAX레지스터에 저장이 되며, 나머지는 EDX에 저장 된다. X는 레지스터를 의미하며 , E는 확장을 의미 한다. 16비트 레지스터에는 E가 붙지 않지만, 컴퓨터가 발전하면서 32비트, 6.. 2017. 7. 29.
[리버싱] 리버싱 사전 지식 [리버싱] 리버싱 사전 지식 선수과정으로는 C언어와 자료구조가 중요합니다. 특히, 자료구조에서는 Stack구조를 잘 알 필요가 있습니다. * 리버싱 정의 = 잘 만들어진 프로그램을 역으로 분석한다. > 프로그램 이란? = 실행 할 수 있는 실행파일 ( .exe 파일) ### 프로그램이 만들어지는 원리 ### .c 파일 > .obj(기계어) - 컴파일 과정 .obj > .exe - 링크 과정(링킹) , 빌드라는 옵션으로 링킹 제공 .exe파일을 역으로 .c 파일로 돌리려고 하면 원래의 .c 파일로 복원이 되지 않습니다. 어섬블리 언어(저급언어)로 나오게 됩니다. 여기서 말하는 저급언어는 사람보다는 컴퓨터에 가까운 언어라는 의미입니다. [CPU] CPU는 크게 4가지로 나뉩니다. 1. ALU 2. Regis.. 2017. 7. 29.
[Web] Sqlinjection 테스트 [Web] Sqlinjection 테스트 a' or '1' = '1 '1' = '1 부분이 참이 되어버리기 때문에 인증을 우회 할 수 있다. ID, PW 동일하게 입력. -- 주석을 줌으로 써 뒷부분의 조건부분을 생략하여 우회 할 수 있다. 패스워드 검증은 주석처리가 되어버리기 때문에 아무 값이나 입력하여도 로그인이 가능하다. 2017. 7. 29.
[LINUX] CentOS7 text, gui모드 변경 7버전 이하에서는 text 모드와 gui 모드설정을 /etc/inittab 파일을 수정하여 설정하였지만, 7버전 이후에서는 systemctl 명령어를 사용하여 변경이 가능합니다. -현재 모드 확인- systemctl get-default -text 모드로 변경- systemctl set-default multi-user.target -gui 모드로 변경- systemctl set-default graphical.target 2017. 7. 29.
[LINUX] 스태틱 라우팅 설정 [LINUX] 스태틱 라우팅 설정 다른 대역대간의 네트워크 통신을 위해서 스태틱 라우팅 설정방법 > 64 대역대 PC > route 명령을 통한 라우팅정보 확인 > 63 대역대 PC > route add -net 192.168.64.0/24 dev eth0 (임시) 라우팅 정보 추가 삭제시 route del -net 192.168.64.0/24 dev eth0 vi /etc/sysconfig/network-scripts/route-eth0 (영구) ADDRESS0=192.168.64.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.63.2 2017. 7. 16.
[LINUX] su 사용 제한 방법 리눅스 su 사용 제한 가이드 관리자 권한(#)이 없는 일반 사용자($)가 su 명령을 사용하는 것을 제한, Password Guessing(암호 추측)을 통해 관리자 권한을 획득할 수 없도록 설정. > 제한을 두지 않으면 일반사용자가 su 명령을 통해 관리자권한을 획득 가능 > 제한을 위해서 /etc/pam.d/su 파일 수정필요 > 수정전 내용(su 명령어를 제한하지 않을 때) > 수정후 내용(su 명령을 제한할 때) auth required pam_wheel.so use_uid 주석 제거 > 수정 후 su명령어 사용 시 'incorrect password' 출력 2017. 7. 16.
[PHP] PHP로 DB(Database) 선택하기 [PHP] PHP로 DB(Database) 선택하기 vi dbselect.php URL 확인 http://localhost/dbselect.php 2017. 7. 9.
[PHP] PHP로 DB(Database) 생성하기 [PHP] PHP로 DB(Database) 생성하기 vi dbcreate.php 파일 생성 URL 결과 확인 http://localhost/dbcreate.php 2017. 7. 9.
[MYSQL] 사용자(DB USER) 생성하기 [MYSQL] 사용자(DB USER) 생성하기 $mysql -uroot -p mysql 접속 후 데이터베이스 선택 mysql> use mysql; mysql > insert into user (host, user, password) values ('localhost', 'test', password('test')); 쿼리 실행 시 아래와 같은 에러 발생 > ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 이유: mysql 버전이 높아짐에 따라 보안 강화 mysql> insert into user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject, authentication_.. 2017. 7. 9.
반응형