[기초] 메시지 후킹(Message Hooking)

보안/리버싱 2018. 1. 17. 22:04


메시지후킹(Message Hooking)

: 영어로 Hook는 갈고리, 낚시 바늘 정도의 뜻을 지닌다.  원하는 것을 낚아챌 때 낚시 바늘을 사용한다. 

메시지 후킹은 컴퓨터의 어떤 것을 낚아채기 위해서 사용되는데, 과연 어떤 것을 낚아채는 걸까?


 

후킹이란 다른 프로세스에 걸려서(Hooked) 해당 프로세스의 정보를 얻어 오거나, 변경하는 것이 가능한 기술이다.

프로세스란 윈도우의 프로세스라고 생각하면 되겠다.


어떤 건물의 전화를 도청을 하고 싶다. 그러면 건물의 전화선들이 지나가는 곳에 도청 장치(후킹 프로시저)를 설치한다. 

그럼 도정장치의 전화 내용들이(windown Message) 지나간다. 도청 장치는 그 중 필요한 메시지를 저장하고 있거나, 필요한 곳으로 전송한다.



후킹 함수를 만들기 위해서는 지켜야 하는 규칙

1. Call Back 함수여야함

2. 함수의 마지막 부분에서는 CallNextHookEx() 함수를 호출함

3. 함수가 받는 인자는 정해져 있음

4. 후킹 프로시저는 DLL 안에 있어야함


LRESULT CALLBACK KeyboardProcedure(int nCode, WPARAM wParam, LPARAM lParam)

{

             if( nCode >= 0 )

             {

             

             }

             // We must pass the all messages on to CallNextHookEx.

           return ::CallNextHookEx( g_Hook , nCode , wParam , lParam );

}


1. Win32 Dynamic Link Library 프로젝트 생성

2. Cpp 파일 위의 후킹함수를 만들어줌




후킹 프로시저를 시작하는 함수, 종료하는 함수


후킹 프로시저를 시작하는 함수

HHOOK SetWindowsHookEx(

    int idHook,

    HOOKPROC lpfn,

    HINSTANCE hMod,

    DWORD dwThreadId

);

MSDN : https://msdn.microsoft.com/en-us/library/ms644990(v=vs.85).aspx



후킹 프로시저를 종료하는 함수

UnhookWindowsHookEx() 의 사용법

 

BOOL UnhookWindowsHookEx(          

             HHOOK hhk

);


MSDN : https://msdn.microsoft.com/en-us/library/ms644993(v=vs.85).aspx



'보안 > 리버싱' 카테고리의 다른 글

[리버싱 기초] Hello World !!  (0) 2018.02.28
Lena 리버싱 - 튜토리얼 1강 pdf 파일  (0) 2018.02.12
DLL 이젝션(프로그램)  (0) 2018.01.15
코드엔진 level19  (0) 2017.09.12
코드엔진 level18  (0) 2017.09.11

설정

트랙백

댓글

[보안뉴스] 2018년 정보보안 트렌드

보안/최신뉴스 2018. 1. 16. 21:26

2018 글로벌 데이터 보안시장 트렌드 

1. 컴플라이언스 대응 위한 포괄적인 데이터 보안 솔루션의 수요 증가
GDPR(유럽 일반개인정보보호법)을 비롯해 점차 강화되는 각종 컴플라이언스 이슈에 
대응할 수 있는 보안체계 구축의 중요성이 강조되고 있다. 
지금까지는 각 솔루션의 정책 및 관리가 개별적으로 운영됐다면, 
앞으로는 상호 연계되어 통합적인 관리가 이루어져야 할 것으로 보인다. 
이와 함께 보안 사고를 미리 예측해 보안 위협을 최소화시킬 수 있는 리스크 관리 방안도 함께 마련되는 등
큰 그림을 그리는 것이 핵심 포인트로 부각될 전망이다. 

컴플라이언스란?


 
2. 데이터의 탐지, 분류 등의 니즈 증가
데이터 탐지 및 분류 기능은 데이터 보안 관련 프로젝트에서 주요 요건으로 자리 잡고 있다. 
이는 데이터 보안 규제 강화와 더불어 보다 효과적인 보안 정책 개발 및 집행을 유도하기 위해서라고 할 수 있다. 
모든 엔드포인트 및 저장소에 존재하는 데이터에 대한 탐지, 분류 및 모니터링을 실시하고, 
그 결과를 토대로 효율적인 보안을 구현하는 솔루션에 대한 시장의 기대와 수요가 증가할 것으로 예상된다.


 
3. 보안 솔루션 간의 연동 니즈 증가
(니즈란 요구사항?)
중요 데이터 유출 방지와 내부 통제, 효율적인 데이터 관리를 위해 DRM(Digital Rights Management)과 DLP 솔루션, 
데이터 분류(Data Classification) 솔루션들을 연동해 보안을 강화하고자 하는 니즈가 증가할 것으로 예측된다. 
 
DRM 란

DLP 솔루션이란




4. 데이터 모니터링 및 분석 솔루션 수요 증가
정책이 유연하고 변화관리 이슈가 낮은 보안 솔루션 도입에 관심을 높이고, 
사용자 및 앤티티 행동 분석(UEBA: User Entity and Behavior Analytics)을 중심으로 데이터 사용에 대한 분석, 
모니터링, 감사 기능 등을 강화할 것으로 보인다. 
 


5. 클라우드 및 하이브리드 형태의 보안 솔루션 도입 증가
대부분의 기업들은 디지털 혁신을 위해 엔터프라이즈 시스템을 클라우드로 빠르게 전환하고 있다. 
보안 솔루션의 경우 클라우드 형태의 수요는 비교적 많지 않았지만, 
이러한 급격한 전환을 고려할 때 클라우드 및 하이브리드 형식의 
인프라를 지원하는 보안 솔루션에 대한 수요가 증가할 것으로 예상된다.
 



2018 국내 보안시장 트렌드

1. 데이터 중심의 보안 확산 
그 동안 외부자의 공격을 막는 시스템 또는 네트워크 수준의 이른바 ‘경계 기반 보안 솔루션’에 집중하여 보안을 구축해 왔다. 
그러나 2018년에는 각종 규제 및 정보유출 사건의 지속적 발생에 따라 
내부자 위협을 포함한 데이터 유출방지를 구현하려는 노력이 전개될 것이며, 
따라서 데이터 중심 보안 솔루션에 많은 투자가 이루어질 것으로 예상된다. 
 
2. 애플리케이션 보안 테스팅 시장 성장
IoT, 클라우드 등 새로운 IT 기술의 발전과 함께 공격 경로와 범위, 공격 유형, 기법 등이 
날로 다양해지면서 보안 위협도 지속적으로 증가하고 있다. 
가트너, 그랜드뷰리서치 등 다수의 글로벌 리서치 기관들은 
애플리케이션 보안 테스팅(Application Security Testing, AST)을 가장 성장동력이 높은 시장으로 꼽았다. 
국내의 경우 지난 2년간 시큐어코딩 의무화에 따라 공공시장이 AST 시장을 이끌었다면, 
올해는 설계 및 개발단계 적용에 대한 시장 니즈가 금융, 국방 및 일반기업으로 확대되면서 
다시 한번 모멘텀을 받을 것으로 예측된다.

 
3. 지능화·고도화된 랜섬웨어 공격 증가
지난해 전 세계를 공포로 몰아넣었던 랜섬웨어는 올해 더욱 지능화·고도화되고 표적화된 공격이 예상되며, 
클라우드와 IoT 기기의 확산으로 공격 범위 또한 지속적으로 확대될 것으로 보인다. 
빠르게 진화하는 다양한 신·변종 랜섬웨어를 완벽하게 막을 수 없다는 점에서 랜섬웨어에 감염되더라도 
피해를 최소할 수 있는 보안 및 백업 솔루션이 주목 받을 것으로 보인다.

 
4. 내부자 및 협력업체 등을 통한 유출 위협 증가 
내부자 및 협력업체 등 권한이 있는 사람에 의한 보안사고 위협이 정보 유출 사고 유형의 70% 이상을 차지하고 있다. 데이터 활용성 극대화를 위해 기업 간은 물론 파트너사, 공급사 등의 협력업체들과 데이터 공유는 더욱 활발하게 이루어질 것이며, 
이에 기업의 주요 자산이 되는 중요 정보에 대한 통제 및 관리에 대한 니즈는 지속적으로 증가할 것으로 예측된다. 

 
5. 유연한 정책 적용과 감사 추적 가능한 솔루션 니즈 증가
이전에는 매우 엄격한 보안 정책으로 인해 사용자에게 불편을 초래하는 솔루션을 사용해 왔다면, 
앞으로는 느슨한 정책을 적용하되 사용자의 행동분석을 통해 실시간으로 위협을 감지하고 
그에 맞게 정책이 자동으로 변경될 수 있는 솔루션에 대한 니즈가 늘어날 것으로 예측된다. 
 
파수닷컴 조규곤 대표는 “최근 많은 기업들이 디지털 혁신(Digital Transformation)을 위한 전략을 추진하고 있으며, 
이러한 변화 속에서 보안은 전 세계가 당면한 가장 중요한 과제”라고 강조하며, 
“앞으로 데이터 중심의 보안이 이에 대응할 수 있는 핵심 축이 될 것”이라고 예상했다.





출처: http://cronyit.tistory.com/1347 [보안솔루션 통합 구축 1위 기업, (주)크로니아이티]



정보보안 트렌드는 이렇고 개인적으로 생각하는 우리나라의 정보보안에 대한 인식도가 낮은 편에 속한다. 정보화 기술에 발달에

실물 은행보다 전산적으로 이용이 가능한 카카오뱅크 라든 지 그런 형태의 은행이 도입이 되면서 점점 더 보안에 강화를 해야하는

상황이 도래되고 있다. 


개인적인 부분에서 관리를 해도 사이트를 가입을 하는 곳이 많은 경우엔 혼자서 어느 사이트에 가입을 했는 지 기억이 안 될뿐더러

잊고 있는 기간동안 업체에서 해킹을 당하게 된다는 상황이 발생될 수도 있다. 몇 년이 지나지 않은 네이트의 해킹사례 라든지 

큰 사이트도 해킹을 당하는 사태가 벌어지고 있는 가운데, 업체에서도 더욱더 강력한 정보보안에 힘을 써야하지 않나 싶다.








설정

트랙백

댓글

보호글

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

DLL(동적 라이브러리) 생성 및 사용 방법

기초 2018. 1. 11. 23:20

Miscrosoft사에서 발행한 DLL 파일을 생성 및 사용하는 방법을 웹페이지에 작성해놓았다. 참조하면 좋을 것 같다.


https://msdn.microsoft.com/ko-kr/library/ms235636.aspx

설정

트랙백

댓글

[PHP 기초문법] 데이터베이스

기초/PHP 2018. 1. 10. 19:21

[데이터베이스] 


데이터베이스란?

여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합(네이버 지식백과 참조)



데이터의 수가 많지 않을 때는 편집하고 할 경우엔 굳이 데이터베이스가 필요가 없다라고 생각할 수
있지만 신기술이 발달해가면서 '빅데이터'도 등장을 하고, 이전 과는 다른 더 많은 데이터를 받아들여서
처리를 해야하는 과정에 도달했다. 그래서 엑셀로 정리와 관리를 하던 시간은 지나고, 더 많은 데이터를
신속하게 처리 및 관리를 해야한다.


데이터베이스의 종류
: mysql, mssql, 오라클, 큐브리드 등 종류가 많다. mssql과 오라클은 데이터베이스를 이용하기 위해선
비용을 지불해야하지만 mysql은 무료로 이용가능 하기 때문에 비용 부분에 민간한 다수의 사람들은 
mysql을 이용한다. 나도 mysql을 자주 이용하는 편이다.

데이터베이스를 사용하기 위해선 간단한 명령어나 접속하는 방법을 알아야 PHP와 데이터베이스를
연동해서 게시판을 만들거나 다른 폼을 만들어서 이용이 가능하다.
생활코딩 PHP 데이터베이스 : https://opentutorials.org/module/6/5175



PHP와 데이터베이스 연동
- PHP에서 데이터베이스를 연동하기 위해선 PDO(PHP Data Object)를 이용해서 PHP에서 데이터베이스를
쉽게 이용가능하다. PDO는 PHP에서 데이터베이스를 이용하기 위해 만들어 놓은 기능의 집합이다.




1
2
3
4
5
6
7
8
9
<?php
$db_host = "localhost";     // 자신의 컴퓨터를 뜻함
$db_user = "root";          // DB에 접속할 아이디
$db_passwd = "1234";      // DB에 접속할 아이디의 비밀번호
$db_name = "mytest";      // DB명
$db_port = 3306;             // 없어도 무방함
$conn = mysql_connect($db_host$db_user$db_passwd);     // DB에 접속할 함수의 값을 $conn변수에 저장함
mysql_select_db($db_name);     // DB에 접속
?>
cs






'기초 > PHP' 카테고리의 다른 글

[PHP기초문법] 파일제어  (0) 2018.01.09
[기초문법/PHP] include와 namespace  (0) 2018.01.08
[기초문법] 배열  (0) 2018.01.05
[기초문법] 함수  (0) 2018.01.04
[기초문법] 제어문  (0) 2018.01.02

설정

트랙백

댓글

[PHP기초문법] 파일제어

기초/PHP 2018. 1. 9. 19:53

[파일제어]


파일 오픈 

$file = './readme.txt';
echo file_get_contents($file);

- file_get_contents() 함수는 파일의 내용을 가지고 오는 함수다. 그리고 file변수에 선언한 확장자는
 현재 디렉토리. php문과 동일한 폴더에 readme.txt 파일이 존재해야한다.



파일 쓰기
$file = './writeme.txt';
file_put_contents($file, 'Hello World!!');

file_put_contents(확장자, '파일내용') 함수는 파일을 오픈해서 문자열을 저장한다.

- 파일을 읽고 쓸때 권한때문에 오류가 생길수도 있으니깐 권한 처리하는 부분도 예제를 보면서 설명하기

1
2
3
4
5
<?php
  $filename = './readme.txt';
  echo file_get_contents($filename);
?>
 
cs

실행화면




파일 복사
$file1 = './readme.txt';
$file2 = './readme.txt.bak';

if(!copy($file1, $file2){
~~
}
copy(파일명1, 새로운 파일명1)는 파일을 다른 이름으로 복사를 하는 함수다.


1
2
3
4
5
6
7
8
9
10
11
<?php
  $file = './readme.txt';
  $newfile = './readme.txt.bak';
 
  if(!copy($file$newfile)){
    echo "File copy is failed";
  } else{
    echo "File copy is Success";
  }
?>
 
cs



실행화면




같은 경로에 newfile로 선언한 이름으로 파일이 생성된 것을 볼 수 있다.




'기초 > PHP' 카테고리의 다른 글

[PHP 기초문법] 데이터베이스  (0) 2018.01.10
[기초문법/PHP] include와 namespace  (0) 2018.01.08
[기초문법] 배열  (0) 2018.01.05
[기초문법] 함수  (0) 2018.01.04
[기초문법] 제어문  (0) 2018.01.02

설정

트랙백

댓글

[기초문법/PHP] include와 namespace

기초/PHP 2018. 1. 8. 20:14

[Include]

include란? PHP에서 include는 다른 php문서를 참조할 경우에 사용을 한다. 화면에 출력 되는 

사이트에는 소스보기를 이용하거나 코드를 볼 수 있는데, 이 소스를 숨겨서 필요할 때 include로

참조를 하여 주요 php문서를 숨기기 위해 사용한다.



1
2
3
4
5
6
<?php
  function helloworld(){
    return "Hello World!!";
  }
?>
 
cs


참조할 php문을 작성한다. 참조하는 php 문서를 func2.php로 저장을 한다.


1
2
3
4
5
6
<?php
  include 'func2.php';
 
  echo helloworld();
?>
 
cs


func2.php를 include문을 이용하여 로드한다. 그래서 func2.php에 코딩한 함수 helloworld()를

출력한다. 


실행화면


include 문을 사용하여 php문서를 로드할 수 있다. 하지만 include문 말고도 로딩할 수 있는 명령이

여러 개가 존재한다. 


- include

- include_once

- require

- require_once 


 4가지의 형태가 있고, include문을 사용해서 로딩을 했을 때는 파일을 실행하지 않고, 경고문을 보내지만

require문 경우엔 php문을 실행중지 시킴으로써 사용이 안 되게 한다.



include.php 문서를 이렇게 수정을 해서 실행을 시켜보자.

1
2
3
4
5
6
7
8
<?php
  require 'func2.php';
  echo helloworld();
 
  require ('func2.php');
  echo helloworld();
?>
 
cs



실행화면


위의 형태로 로딩을 했을 경우엔 올바르게 출력이 되지만, 밑의 방법으로 로딩을 할 시 오류가 뜬다.




[namespace]


namespace란? namespace란 a.php와 b.php 각각의 코드엔 hellofunc()라는 함수란 동일한 이름의 함수가 있을 때

a.php의 hellofunc()와 b.php의 hellofunc()를 따로 따로 구분짓기 위해 사용된다.



kohello.php

1
2
3
4
5
6
7
8
<?php
  namespace lang\ko;
 
  function helloworld(){
    return "안녕하세요";
  }
?>
 
cs


enghello.php

1
2
3
4
5
6
7
8
<?php
  namespace lang\eng;
 
  function helloworld(){
    return "HelloWorld!";
  }
?>
 
cs


name.php

1
2
3
4
5
6
7
8
<?php
  include_once 'kohello.php';
  include_once 'enghello.php';
 
  echo lang\ko\helloworld();
  echo lang\eng\helloworld();
?>
 
cs

실행화면


간단하게 이야기하면 ko라는 방을 만들고, eng라는 방을 만들어서 각각의 방 안에 helloworld() 

함수를 만들었다. 그래서 각 방의 이름을 앞에 붙여서 helloworld()함수를 호출하면 된다.





'기초 > PHP' 카테고리의 다른 글

[PHP 기초문법] 데이터베이스  (0) 2018.01.10
[PHP기초문법] 파일제어  (0) 2018.01.09
[기초문법] 배열  (0) 2018.01.05
[기초문법] 함수  (0) 2018.01.04
[기초문법] 제어문  (0) 2018.01.02

설정

트랙백

댓글

[기초문법] 배열

기초/PHP 2018. 1. 5. 19:34


[배열]

배열이란? 앞서 배웠던 자료형이 여러 개의 방을 가지고 있다는 뜻이다. 연속된 방에 다른 값을

넣어 사용하는 게 배열이다.



int 타입의 '$a'란 변수가 있는데, 변수 뒤에 '$a[5]'를 하면 변수 '$a'와 같은 타입의 변수가 5개가

나열이 되어서 선언이 된다.


 a[0]

a[1] 

a[2]

 a[3]

a[4] 




☆ 배열의 선언

: 배열 선언을 할려면 C언어랑 동일한 방법으로 사용하면 되는데, $배열명 = array(); 혹은 [];로 선언

을 하면 된다.


1
2
3
4
5
6
7
8
9
10
11
<?php
  $a = array();
 
  $a = ['array1''array2''array3'];
 
  for($i=0$i<count($a); $i++){
      echo $a[$i]."<br>";
  }
 
?>
 
cs



실행화면


2번째 줄에 array() 함수를 이용해서 배열을 선언하고 난 후 뒤에 4번째 줄에 배열의 값을

따로 줬지만 굳이 2번째 줄처럼 배열을 선언하고 난 후에 값을 넣어주는 형태 말고, 4번째

줄을 바로 배열 선언을 하여도 상관없다.



☆ 배열 추가


* 끝에 부분에 새로운 배열을 추가할 경우

1
2
3
4
5
6
7
8
9
10
11
<?php
//  $a = array();
  $a = ['array1''array2''array3'];
  array_push($a'array4');
 
  for($i=0$i<count($a); $i++){
      echo $a[$i]."<br>";
  }
 
?>
 
cs



실행화면


* 끝부분에 복수 개의 값을 추가할 경우

1
2
3
4
5
6
7
8
9
10
11
<?php
//  $a = array();
  $a = ['array1''array2''array3'];
  $a = array_merge($a, ['array4''array5']);
 
  for($i=0$i<count($a); $i++){
      echo $a[$i]."<br>";
  }
 
?>
 
cs




실행화면




* 중간에 삽입할 경우



☆ 배열삭제


* 제일 앞 부분을 삭제할 경우

1
2
3
4
5
6
7
8
9
10
<?php
  $a = ['array1''array2''array3''array4','array5'];
  array_shift($a);
 
  for($i=0$i<count($a); $i++){
      echo $a[$i]."<br>";
  }
 
?>
 
cs



실행화면




* 끝 부분을 삭제할 경우

1
2
3
4
5
6
7
8
9
10
<?php
  $a = ['array1''array2''array3''array4','array5'];
  array_pop($a);
 
  for($i=0$i<count($a); $i++){
      echo $a[$i]."<br>";
  }
 
?>
 
cs



실행화면



'기초 > PHP' 카테고리의 다른 글

[PHP기초문법] 파일제어  (0) 2018.01.09
[기초문법/PHP] include와 namespace  (0) 2018.01.08
[기초문법] 함수  (0) 2018.01.04
[기초문법] 제어문  (0) 2018.01.02
[기초문법] 연산자  (0) 2018.01.01

설정

트랙백

댓글

[기초문법] 함수

기초/PHP 2018. 1. 4. 19:23



[함수]


함수란? 필요한 기능의 코드를 묶어서 필요한 순간에 호출하여 사용할 때 쓴다. 여러 번 반복되는

코드를 한 꺼번에 묶어서 코드를 재사용할 수 있게 한다.


1
2
3
4
5
6
<?php
    function 함수명(인자, 인자2){
        // Code
        return 반환값;
    }
?>
cs



[함수의 형식]

함수는 function 뒤에 함수의 이름이 오고, 괄호가 온다. 괄호 안에는 함수에 대한 입력 값을 담을

변수의 이름이 오고, 복수의 입력 값을 받을 때는 사이에 ' , '(콤마)로 구분한다. 중괄호에는 함수가

호출 되었을 때 실행할 코드가 있다.


1
2
3
4
5
6
7
8
<?php
  function echoprint($a$b){
    echo "a의 값은 = ".$a."이고, b의 값은 = ".$b." 이다."."<br>";
  }
 
  echo echoprint(14);
?>
 
cs


실행화면





함수의 인자값을 돌려받을 때(return으로 값을 넘김을 받을 때)



1
2
3
4
5
6
7
8
9
10
<?php
 
  $val = 10;
 
  function val_return($val2){
    return $val2;
  }
 
  echo val_return($val);
?>
cs


실행화면


선언되어 있는 값을 함수로 넘겨받아서 함수 안에서 처리를 하고, 처리된 값을 리턴을 해보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
  $val = 10;
 
  function val_return($val2){
    $val2++;
    return $val2;
  }
 
  $val3 = val_return($val);
 
  echo $val3;
?>
 
cs



실행화면



- return을 해주는 7줄에서 증감연산자를 사용하였을 경우 return값은 증가된 값을 

넘기는 것이 아니라 넘긴을 받은 $val2 값을 그대로 리턴한다. 그 이유는 증감연산자

자체가 문장 다음줄에 값을 증가를 시키지만 $val2는 리턴을 한 상태에서 함수가 종료

된 후에 증감이 되는 형식이라서 함수가 return을 한 상태면 이미 함수 자체가 끝났다.

그래서 return 넘기는 부분에서 증감연산자를 사용하며 아무 소용이 없게 된다.








'기초 > PHP' 카테고리의 다른 글

[기초문법/PHP] include와 namespace  (0) 2018.01.08
[기초문법] 배열  (0) 2018.01.05
[기초문법] 제어문  (0) 2018.01.02
[기초문법] 연산자  (0) 2018.01.01
[기초문법] 변수  (0) 2017.12.29

설정

트랙백

댓글

[기초문법] 제어문

기초/PHP 2018. 1. 2. 21:06


[제어문]

제어문이란? 프로그램의 흐름을 제어한다. PHP는 절차식 언어이기 때문에 프로그램의 흐름이 기본적으로

위에서 아래로 흐르는 구조다. 이때 흐름을 거슬러 올라가거나 아니면 특정 부분으로 건너 뛰고 싶을 때,

이를 처리할 수 있는 제어구조가 필요하게 된다.


IF구문

: 표현식이 참인 경우에 다음 구문을 실행

1
2
3
4
5
6
7
<?php
    $a = 10;
 
    if($a == 10){    // 괄호안이 참이면 다음을 실행 { } 안에 내용을 실행시킴.
        echo "a는 10이다.";
    }
?>
cs



ELSE구문

: IF 구문의 표현식이 거짓인 경우 다음 구문을 실행


1
2
3
4
5
6
7
8
9
10
<?php
    $a = 10;
 
    if($a == 4){    // 괄호안이 참이면 다음을 실행 { } 안에 내용을 실행시킴.
        echo "a는 4입니다.";
    }
    else{
        echo "a는 4가 아닙니다.";
    }
?>
cs



실행결과

ELSE IF구문

: IF구문 이외의 조건을 걸어서 제어를 할 경우에 사용한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    $a = 10;
 
    if($a == 4){    // 괄호안이 참이면 다음을 실행 { } 안에 내용을 실행시킴.
        echo "$a는 10이다.";
    }
    else if($a == 10){
        echo "a는 4가 아니고 10입니다.";
    }
    else{
        echo "$a는 4가 아닙니다.";
    }
?>
cs


실행결과




WHILE 구문

: 해당 구문을 지속적으로 반복해서 실행


1
2
3
4
5
6
7
8
<?php
    $a = 0;
    while($a <= 10){
        echo "a의 값은 : ".$a." 입니다."."<br>";
        $a++;
    }
?>
 
cs


실행결과



'기초 > PHP' 카테고리의 다른 글

[기초문법] 배열  (0) 2018.01.05
[기초문법] 함수  (0) 2018.01.04
[기초문법] 연산자  (0) 2018.01.01
[기초문법] 변수  (0) 2017.12.29
[기초문법] 출력  (0) 2017.12.28

설정

트랙백

댓글