This talk introduces and discusses a novel, mostly unpublished technique to successfully attack websites that are applied with state-of-the-art XSS protection. This attack labeled Mutation-XSS (mXSS) is capable of bypassing high-end filter systems by utilizing the browser and its unknown capabilities - every single f***** one of them. We analyzed the type and number of high-profile websites and applications that are affected by this kind of attack. Several live demos during the presentation will share these impressions and help understanding, what mXSS is, why mXSS is possible and why it is of importance for defenders as well as professional attackers to understand and examine mXSS even further. The talk wraps up several years of research on this field, shows the abhorrent findings, discusses the consequences and delivers a step-by-step guide on how to protect against this kind of mayhem - with a strong focus on feasibility and scalability.
Voici le chapitre sur les classes et les objets en C++.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Cours CSS feuilles de style en cascade- mars 2015Abdoulaye Dieng
Objectif général : Mettre en forme le contenu d’un site web
Objectifs spécifiques :
Insérer du style dans une page HTML
Sélectionner du contenu dans une page Web
Donner du style aux caractères et au texte
Choisir une image ou une couleur de fond
Gérer l’espacement externe et interne des différents composants d’une page Web
Dimensionner les éléments d’une page HTML
Positionner les éléments d’une page Web
Voici la nouvelle version 2019 du chapitre sur les fonctions en C++:
https://fr.slideshare.net/AzizDarouichi/chap2fonctionscpp
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Cette présentation brosse une revue détaillée des nouveautés qui sont proposées en standard, en preview et en incubation dans la version 21 LTS du JDK issues des projets d’OpenJDK :
- Amber : Record Patterns, Pattern Matching for switch, String Templates, Unnamed Patterns and Variables, Unnamed Classes and Instance Main Methods
- Loom : Virtual Threads, Structured Concurrency, Scoped Values
- et Panama : Foreign Function & Memory API, Vector API
mais aussi de fonctionnalités dans les API de Java Core qui ne font pas l'objet de JEP et dans la JVM HotSpot.
Variational이라는 단어로는 아무것도 안떠오릅니다.
그래서, '꿩 대신 닭'이라고 표현해 봤습니다.
초반 독자적인 그림을 통해 개념잡기가 쉬워요.
설명부분은 초록색으로 표시했습니다.
확률변수(random variable)부터 막히면, 아래 블로그 글을 읽어 보세요.
https://blog.naver.com/nonezerok/221428251262
This talk introduces and discusses a novel, mostly unpublished technique to successfully attack websites that are applied with state-of-the-art XSS protection. This attack labeled Mutation-XSS (mXSS) is capable of bypassing high-end filter systems by utilizing the browser and its unknown capabilities - every single f***** one of them. We analyzed the type and number of high-profile websites and applications that are affected by this kind of attack. Several live demos during the presentation will share these impressions and help understanding, what mXSS is, why mXSS is possible and why it is of importance for defenders as well as professional attackers to understand and examine mXSS even further. The talk wraps up several years of research on this field, shows the abhorrent findings, discusses the consequences and delivers a step-by-step guide on how to protect against this kind of mayhem - with a strong focus on feasibility and scalability.
Voici le chapitre sur les classes et les objets en C++.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Cours CSS feuilles de style en cascade- mars 2015Abdoulaye Dieng
Objectif général : Mettre en forme le contenu d’un site web
Objectifs spécifiques :
Insérer du style dans une page HTML
Sélectionner du contenu dans une page Web
Donner du style aux caractères et au texte
Choisir une image ou une couleur de fond
Gérer l’espacement externe et interne des différents composants d’une page Web
Dimensionner les éléments d’une page HTML
Positionner les éléments d’une page Web
Voici la nouvelle version 2019 du chapitre sur les fonctions en C++:
https://fr.slideshare.net/AzizDarouichi/chap2fonctionscpp
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Cette présentation brosse une revue détaillée des nouveautés qui sont proposées en standard, en preview et en incubation dans la version 21 LTS du JDK issues des projets d’OpenJDK :
- Amber : Record Patterns, Pattern Matching for switch, String Templates, Unnamed Patterns and Variables, Unnamed Classes and Instance Main Methods
- Loom : Virtual Threads, Structured Concurrency, Scoped Values
- et Panama : Foreign Function & Memory API, Vector API
mais aussi de fonctionnalités dans les API de Java Core qui ne font pas l'objet de JEP et dans la JVM HotSpot.
Variational이라는 단어로는 아무것도 안떠오릅니다.
그래서, '꿩 대신 닭'이라고 표현해 봤습니다.
초반 독자적인 그림을 통해 개념잡기가 쉬워요.
설명부분은 초록색으로 표시했습니다.
확률변수(random variable)부터 막히면, 아래 블로그 글을 읽어 보세요.
https://blog.naver.com/nonezerok/221428251262
This document describes an implementation of backpropagation algorithm in C code to understand the backpropagation algorithm through programming. It also explains how it can be applied to a real-world case of handwritten digit recognition using TensorFlow code. The neural network code can be used to gain experience by adjusting values and observing their effects on the network.
To install Python and TensorFlow, download Python version 3.5.2 from the Python website and TensorFlow from the TensorFlow website. Python 3.5.2 must be installed before installing TensorFlow. Once Python is installed, add it to the system PATH and install pip. Then use pip to install various Python packages like iPython, PyQt5, Matplotlib, OpenCV, and Spyder for data science and machine learning.
This document discusses convolutional neural networks (CNNs) for image recognition. It explains key CNN components like convolutional layers, pooling layers, hyperparameters like kernel size and stride. It provides code in TensorFlow to recognize handwritten digits from the MNIST dataset using a CNN model with convolutional and pooling layers. The code trains the model on MNIST data and evaluates test accuracy.
The document discusses interfaces in COM. It explains that interfaces allow invoking functions of COM objects indirectly using virtual function techniques. It shows how to define a pure abstract interface class and have implementation classes inherit the interface. Clients can call interface methods without knowing the underlying implementation class. Later sections discuss adding multiple interfaces to a class, querying for interfaces, and how a client can load and use a COM server from a DLL.
This document discusses the COM (Component Object Model) architecture. It covers topics such as how COM uses the Windows Registry to associate components with their class identifiers (CLSIDs) and locations, how clients can load and interact with servers through functions like CoGetClassObject and CoCreateInstance, how servers implement functions like DllRegisterServer to register themselves, and how interfaces are defined using Interface Definition Language (IDL) and compiled using MIDL. It also compares the COM architecture to web services, noting differences in technologies used like IDL vs WSDL and the Windows Registry vs UDDI for discovery.
신경망의 층이 늘어났을 때 (즉 신경망이 깊어졌을 때), 학습의 어려움을 해소하기 위해 제시된 선행학습 관점에서 DBN과 AE를 소개합니다. 또한 다른 접근법으로 문제를 해소하여 뒤 늦게 심층 신경망으로 간주되고 있는 CNN을 소개합니다.
DBN에 사용된 RBM, AE는 GAN과 더블어 비교사학습 방법을 이끄는 삼두마차입니다. CNN은 영상학습 분야의 단연 절대강자입니다.
산포된 데이터를 정합하는 직선을 찾는 것으로 이해해도 무방합니다. 주어진 데이터를 이용해 기울기와 절편을 구하는 방법입니다.
먼저 행렬연산을 통해 구하는 방법을 설명합니다. 그리고 퍼셉트론에 사용된 것과 같은 방법을 다시 설명하므로 선택적으로 듣기 바랍니다.
설명된 예제에 대한 C 언어 코드를 제공합니다. Tensorlow 코드는 정합 과정을 시각화하여 보여줍니다.
퍼셉트론의 한계를 극복하는 방법입니다. 퍼셉트론은 나오자 마자 한계에 봉착했는데, 이를 해결하기 위해 구조적인 확장을 하게 됩니다. 그러나 정작 중요한 것은 이 확장된 구조에서의 학습 방법을 오랫 동안 찾지 못한 것입니다. 여기서 소개하는 신경망 학습방법은 신경망 학습방법의 거의 전부라고 할 수 있습니다.
7. 다행히 그런 부분은 Windows (운영체제)가 알아서 처리해준다
대신 이러 이러한 방식으로 코딩 하라는 규칙이 있다
그 규칙에 따라서 코딩 하는 것을
사건 기반 프로그래밍
Event-Driven Programming
7
위 말이 이해가 안되면 1장을 다시 보세요
8. 8
메시지 처리 코딩
윈도우 생성 코딩
프로그램 끝 날 때 까지
이벤트 처리 과정
프로그래머가 실제로 하는 일
반복
9. 9
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT,
WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance, LPSTR lpszArg,
int nCmdShow);
메시지 처리 코딩
윈도우 생성 코딩 WinMain
WndProc
함수가 왜 이렇게 복잡해 보이냐
함수가 달랑 두 개 뿐
10. 10
이벤트 처리하려면 어떤 정보가 있어야 할까?
메시지
• 이벤트는 어디서 발생?
• 어떤 이벤트 인데?
• 이벤트가 발생했을 때 어떤 상황이지?
• 이벤트 발생 시각은?
• 이벤트 발생할 때 마우스 위치는?
11. 11
• 이벤트는 어디서 발생?
• 어떤 이벤트 인데?
• 이벤트가 발생했을 때 어떤 상황이지?
• 이벤트 발생 시각은?
• 이벤트 발생할 때 마우스 위치는?
• 윈도우 구분 아이디 필요
• 이벤트 구분 아이디 필요
• 상황정보
• 이벤트 발생 시점 기록
• 마우스 위치 기록
typedef struct
{
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG
메시지 구조체
유추할 수는 있겠는데, 타입은 생소하군
12. 12
typedef struct
{
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG
unsigned int
Handle to a Window
HINSTANCE
handle to an Instance (Program)
다 생소하겠지만 위 두 개는 지금 기억
나머지는 차츰 알게 된다
15. 15
LRESULT CALLBACK WndProc(HWND, UINT,
WPARAM, LPARAM);
이벤트 처리 함수의 프로토타입
LRESULT
CALLBACK
HWND
UINT
WPARAM
LPARAM
리턴 타입; 알려고 하지 말자
함수 호출 방식 지정
윈도우 핸들
이벤트 아이디
부가정보 1
부가정보 2
PASCAL 언어 방식
C 언어 방식
• word parameter = 4 bytes
• long word parameter = 4 bytes
원래 word 는 2 bytes 이고 long은 2배 였지만 지금은 둘 다 4 bytes
16. 16
LRESULT CALLBACK WndProc(HWND, UINT,
WPARAM, LPARAM);
이벤트 처리 함수의 프로토타입
LRESULT
CALLBACK
HWND
UINT
WPARAM
LPARAM
리턴 타입; 자세히 알려고 하지 말자
함수 호출 방식 지정
윈도우 핸들
이벤트 아이디
부가정보 1
부가정보 2
PASCAL 언어 방식
C 언어 방식
__stdcall
원래는 이 키워드 인데 이름 바꾸고 callback 함수라고 불러
파라미터가 MSG와 일치
17. 17
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArg,
int nCmdShow)
{
}
윈도우 프로그램 시작 함수
WINAPI
HINSTANCE
LPSTR
파스칼 호출방식 지정
방금 실행된 프로그램 ID
이전에 실행된 프로그램 ID
실행 시 넘겨지는 문자열
윈도우 화면 출력 여부 결정하는 상수 값 넘어옴
새로운 데이터 타입에 너무 신경 쓰지 마세요
__stdcall
18. 18
WinMain()
{
}
윈도우 클래스 정의
윈도우 클래스 등록
윈도우 생성
메시지 루프
여기서 말하는 클래스는 C++ 클래스 아님
그냥 속성 모음; 속성 값 설정
설정한 속성들을 운영체제에게 알림
등록된 설정 값을 이용해서 윈도우 생성
메시지 처리 반복
윈도우생성 하려면 윈도우 클래스 정의 및 등록을 먼저
프로그램 끝 내려면 메시지 처리 반복을 끝내야 해
클래스 정의 및 등록은 어떻게 하는 거야
19. 19
WinMain(HINSTANCE hInstance,…)
{
WNDCLASS WndClass;
WndClass.style = NULL;
WndClass.lpfnWndProc = WndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = hInstance;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName = NULL;
WndClass.lpszClassName = "Hello";
}
클래스 정의: 구조체에 값 넣는 작업
프로그래머가 맘대로 정해줄 수 있는 부분
그 나머지는 거의 이래로 사용; 암기 불필요
프로그램 ID도 기록해 두네
이벤트 처리 함수 이름이네
21. 21
WinMain(HINSTANCE hInstance,…)
{
HWND hWnd;
hWnd = CreateWindow(
"Hello",
"Hello",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
}
윈도우 생성: 실제 윈도우 생성
CreateWindow 11개의 인자에 대해 잘 알아야 함
당장은 아니고 앞으로 차근차근
22. 22
WinMain(HINSTANCE hInstance,…)
{
HWND hWnd;
hWnd = CreateWindow(
"Hello",
"Hello",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
}
WndClass.lpszClassName = "Hello"; 대소문자 구분 안 한다
앞서 등록한 윈도우 클래스를 여기서 활용
윈도우 클래스 정의 부분에서 WndProc 있었는데… 이게 의미하는 바는 ?
23. 23
WinMain(…, int nCmdShow)
{
hWnd = CreateWindow(…);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
}
생성한 윈도우를 화면에 실제로 출력하게 한다
이거 안 해주면 윈도우를 만들어도 화면에 안 보여진다
두 개를 다 써줘야 한다 왜 두 개나? 이상하긴 하지만 일단 넘어가자
대개 첫 번째 인자는 hWnd
이미 만들어진 윈도우에게 뭔가 조작을 가는 함수, 대개 첫 번째 인자는 윈도우 핸
들인 함수를 포함하여 윈도우 프로그래밍에 필요한 함수와 SW_SHOW같은 상수. 이
들은 windows.h 에 정의되어 있다.
SW_SHOW, WS_HIDE
윈도우 API
24. 24
WinMain(…, )
{
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
메시지 루프: 발생한 이벤트를 반복해서 처리한다
그럼 언제 끝나 ?
GetMessage( ) 가 false가 될 때 반복문 종료
가지고 온 메시지가 WM_QUIT 일 때
메시지는 어디서 가지고 오더라 ? Application Queue 에서
메시지 처리는 WndProc에서 한다고 했는데 호출부분이 안보여
25. 25
WinMain(…, )
{
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
이벤트 발생에 따른 처리는 운영체제 몫
어떻게 처리할 지만 프로그래머 몫
여기서 내부적으로 WndProc 호출
왜 두 개나? 이상하긴 하지만 여기도 일단 넘어가자
이상 WinMain 파트 끝
26. 26
LRESULT CALLBACK WndProc(HWND hWnd, UINT mesg, WPARAM wParam, LPARAM lParam)
{
switch(mesg)
{
case WM_DESTROY :
PostQuitMessage(0);
return FALSE;
}
return DefWindowProc(hWnd, mesg, wParam, lParam);
}
이벤트가 발생할 때 마다 윈도우즈가 자동으로 호출
복잡해 보여도 그냥 함수, 쫄지마~
여기서 처리하고 있는 메시지는 ? 어떤 처리를 하고 있나 ?
PostQuitMessage(0)의 역할이 무엇인가 ?
WM_DESTROY
27. 27
LRESULT CALLBACK WndProc(HWND hWnd, UINT mesg, WPARAM wParam, LPARAM lParam)
{
switch(mesg)
{
case WM_DESTROY :
PostQuitMessage(0);
return FALSE;
}
return DefWindowProc(hWnd, mesg, wParam, lParam);
}
이벤트가 발생할 때 마다 윈도우즈가 자동으로 호출
복잡해 보여도 그냥 함수
여기서 처리하고 있는 메시지는 ? 어떤 처리를 하고 있나 ?
PostQuitMessage(0)의 역할이 무엇인가 ?
WM_QUIT 메시지를 어플리케이션 큐에 넣는다
처리 메시지
처리 내용
28. 28
LRESULT CALLBACK WndProc(HWND hWnd, UINT mesg, WPARAM wParam, LPARAM lParam)
{
switch(mesg)
{
case WM_DESTROY :
PostQuitMessage(0);
return FALSE;
}
return DefWindowProc(hWnd, mesg, wParam, lParam);
}
얘는 뭐 하는 녀석인가 ?
WM_SIZE
WM_MOVE
기본적인 윈도우 메시지 처리
30. 30
typedef LONG LONG;
typedef LONG LRESULT;
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define VOID void
typedef unsigned int UINT; // 4바이트
typedef UINT WPARAM; // 4바이트
typedef LONG LPARAM; // 4바이트
typedef unsigned short WORD; // 2바이트
typedef unsigned long DWORD; // 4바이트
typedef CHAR *LPSTR, *PSTR; // 4바이트
typedef unsigned char BYTE; // 1바이트
typedef char CHAR; // 1바이트
typedef float FLOAT; // 4바이트
typedef int INT; // 4바이트
typedef int BOOL; // 4바이트
typedef struct tagPOINT { LONG x, LONG y } POINT;
참고로 한번 훑어 보세요 기존 것 재정의 한 것에 불과
※ 메모리 크기는 바뀔 수 있음