ν¨μ μ€λ²λ‘λ κ°λ μ λν΄ μμλ³΄κ² μ΅λλ€.
ν¨μ μ€λ²λ‘λ(overload)
- κ°μ μ΄λ¦μ ν¨μλ₯Ό μ¬λ¬ κ° μ μν μ μλ κ°λ
- κ° ν¨μκ° μ λ ₯λ°λ νλΌλ―Έν°μ κ°μλ νμ μ λ€λ₯΄κ² ν΄μΌνλ€.
- ν¨μ μ΄λ¦μ΄ κ°μλ μ λ ₯λλ νλΌλ―Έν°μ κ°μλ νμ μ΄ λ€λ₯΄λ©΄ λ€λ₯Έ ν¨μλ‘ μΈμλμ΄ νΈμΆλλ€.
- C++, C#, Java, Swiftμμλ μ€λ²λ‘λ©μ μ§μνκ³ , C, Python, JavaScript, Ruby λ±μμλ μ§μνμ§ μλλ€.
- μΈμ΄λ§λ€ μ€λ²λ‘λ ꡬν λ°©μκ³Ό μ μ½ μ¬νμ λ€λ₯Ό μ μλ€.
C++μμμ ν¨μ μ€λ²λ‘λ
- ν¨μ μ΄λ¦μ κ°μ§λ§ νλΌλ―Έν°μ νμ μ΄λ κ°μλ₯Ό λ€λ₯΄κ² νμ¬ μ¬λ¬ κ°μ ν¨μλ₯Ό μ μν μ μλ€.
- λ°ν κ°μ νμ λ§ λ€λ₯΄κ² μ μνλ©΄ μ€λ²λ‘λν μ μκ³ , νλΌλ―Έν°κΉμ§ λ€λ₯΄κ² ν΄μΌ νλ€.
C++ μ€λ²λ‘λ© μμ1: νλΌλ―Έν° κ°μκ° λ€λ₯Έ κ²½μ°
#include <iostream>
using namespace std;
int func(){
return 10;
}
int func(int x){
return x * 2;
}
int main() {
cout << "0 parm function: " << func() << endl; 10
cout << "1 parm function: " << func(5) << endl; 10
return 0;
}
C++ μ€λ²λ‘λ© μμ2: νλΌλ―Έν° νμ μ΄ λ€λ₯Έ κ²½μ°
#include <iostream>
using namespace std;
int func(int x){
return x * 2;
}
double func(double x){
return x * 2.0;
}
int main() {
cout << "int parm function: " << func(5) << endl; 10
cout << "double parm function: " << func(5.0) << endl; 10.0
return 0;
}
μ€λ₯ λ° ν΄κ²° μμ
λΉλ λμ€μ 'λ°ν νμμΌλ‘λ§ κ΅¬λΆλλ ν¨μλ₯Ό μ€λ²λ‘λν μ μμ΅λλ€.' μ€λ₯κ° λ°μνμ΅λλ€.
ν΄λΉ μ€λ₯κ° WinSock2.h νμΌμμ λ°μνλλ°, μ¬κΈ°μλ μ¬λ¬ μ΄μ κ° μμ μ μμ΅λλ€.
- winsock.hμμ μΆ©λ
- μλ‘ λ€λ₯Έ μμΌ APIλ₯Ό μ μνκ³ μμ΄ λμμ ν¬ν¨(include)νλ©΄ μΆ©λμ΄ λ°μν μ μμ - λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬μμ μΆ©λ
- winsock2.hμ λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬μμ μ¬μ©λλ ν¨μμ μΆ©λμ΄ λ°μν μ μμ - #define _CRT_SECURE_NO_WARNINGSμμ μΆ©λ
- ν΄λΉ λ§€ν¬λ‘κ° winsock2.hμμ μ μνλ ν¨μλ€κ³Ό μΆ©λμ΄ λ°μν μ μμ
μ λ OpenSSL λΌμ΄λΈλ¬λ¦¬μ ν¨κ» μ¬μ©ν΄μ λ¬Έμ κ° μμμ΅λλ€. κ·Έλ κΈ° λλ¬Έμ μλ μ½λμ²λΌ winsock2.hλ OpenSSLλ³΄λ€ λ¨Όμ includeνλ©΄ ν΄κ²°λ©λλ€.
#include <winsock2.h>
#include <ws2tcpip.h>
#include <openssl/evp.h>
#include <openssl/rand.h>
ν€λ νμΌμ΄ ν¬ν¨λλ μμμ λ°λΌ λ§€ν¬λ‘ μ μμ ν¨μ μ μΈμ΄ μν₯μ λ°μ΅λλ€. μ»΄νμΌ μ λ°μνλ λ§€ν¬λ‘ μΆ©λκ³Ό κ΄λ ¨μ΄ μμ΅λλ€. winsock2.h ν€λ νμΌμμλ μλμ° μμΌ APIλ₯Ό μ¬μ©ν μ μλλ‘ νλλ° OpenSSLλ μ체μ μΌλ‘ μμΌ κ΄λ ¨ μμ μ μννλ μ½λκ° ν¬ν¨λμ΄ μμ΄ μΌλΆ λ§€ν¬λ‘ μ΄λ¦μ΄ μΆ©λν μ μμ΅λλ€. (ex. accept(), bind(), select() ...) winsocks2.hλ Windows νκ²½μμ κΈ°λ³Έμ μΌλ‘ μ 곡λκ³ OpenSSLλ μΈλΆ λΌμ΄λΈλ¬λ¦¬μ΄λ―λ‘ κΈ°λ³Έμ μΌλ‘ μ 곡λλ ν€λ νμΌμ λ¨Όμ ν¬ν¨(include)νλ κ²μ΄ μ’μ΅λλ€.
'Study > study' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Static μν° λλ²κΉ (Anti Debugging) κΈ°λ²κ³Ό μ°ν (1) | 2024.11.29 |
---|---|
ν€λ‘κ±°(Keylogger)(C++) νλ‘κ·Έλ¨ λ¦¬λ²μ± (1) | 2024.11.25 |
μ μ νμ μ λΆνΈ κ΅¬λΆ (4) | 2024.11.13 |
AES μνΈν λ°μ΄ν° μ μ‘ νλ‘κ·Έλ¨(C++) 리λ²μ± (1) | 2024.11.11 |
λ§ν¬ λ°©μμ λ°λ₯Έ λμ€μ΄μ λΈλ¦¬ μ½λ νΉμ§ (1) | 2024.11.07 |