Programinio kodo saugumas

Size: px
Start display at page:

Download "Programinio kodo saugumas"

Transcription

1 Programinio kodo saugumas Rolandas Griškevičius MSN: R. Griškevičius, Saugus programavimas, VGTU,

2 Kodo malėjas A code grinder as defined by the hacker community reference, the Jargon Dictionary ( is a developer who lacks creativity and is bound by rules and primitive techniques. Developers who become code grinders rarely do so because of lack of ambition; code grinders are born from an environment that struggles with freedom at a developer level. Dažnai yra blogo kodo šaltinis R. Griškevičius, Saugus programavimas, VGTU,

3 Assert / Trace Many compilers offer an assert() macro. The assert() macro returns TRUE if its parameter evaluates TRUE and takes some kind of action if it evaluates FALSE. Many compilers will abort the program on an assert() that fails; others will throw an exception One powerful feature of the assert() macro is that the preprocessor collapses it into no code at all if DEBUG is not defined. It is a great help during development, and when the final product ships there is no performance penalty nor increase in the size of the executable version of the program. TRACE makrosas = IF ( DEBUG ) THEN PRINTF (...) R. Griškevičius, Saugus programavimas, VGTU,

4 Assert 2 1: //ASSERTS 2: #define DEBUG 3: #include <iostream.h> 4: 5: #ifndef DEBUG 6: #define ASSERT(x) 7: #else 8: #define ASSERT(x) \ 9: if (! (x)) \ 10: { \ 11: cout << "ERROR!! Assert " << #x << " failed\n"; \ 12: cout << " on line " << LINE << "\n"; \ 13: cout << " in file " << FILE << "\n"; \ 14: } 15: #endif 16: 17: 18: int main() 19: { 20: int x = 5; 21: cout << "First assert: \n"; 22: ASSERT(x==5); 23: cout << "\nsecond assert: \n"; 24: ASSERT(x!= 5); 25: cout << "\ndone.\n"; 26: return 0; 27: } R. Griškevičius, Saugus programavimas, VGTU,

5 Exception Galingas klaidų apdorojimo mechanizmas Pagrindinė išimčių programavimo klaida netvarkingas gaudymas Išimtys turi būti pagaunamos kuo arčiau galimos jų generavimo vietos: Stabilesnis programos veikimas Pilna informacija apie klaidą GPF klaidas taip pat galima gaudyti, bet reikia specialiai programoje pakeisti standartinių išimčių gaudyklę API SetUnhandledExceptionFilter R. Griškevičius, Saugus programavimas, VGTU,

6 Kodo maskavimas angl. literatūroje - obfuscation Ypatingai daug yra PHP Google php obfuscator Mokamas: ZendGuard Nemokami google R. Griškevičius, Saugus programavimas, VGTU,

7 Primityvi php obfuskacija eval( gzuncompress( base64_decode( 'enplj1dvwjaahp9mpngicgcqekv5yg/mxi9vhjmgczsd+puftworvxdpp7tpo g4jhpblyptsjcsawxh/bqjpbr4avrbgbntrhh4x34aet3iguj+picjjgca/weg 6Co0X8Xtp+s8icdI4o4QxYFuMqMqHS5zUJYDlNKfAo8Ry/yJkVYMCfx90rWevc z1n4uno02qjw3yvygonb/nxujj3pfvih+xj1hcl3v6pqoaq5zpl0xrwupqwgzi8 wlc73v5/mbynj9pzfigxq/vmu9sfjqezztsu8fwgvfyjoemzg2v5uvb3xxojkq w01zam1xo8hnagprwb30pq+ataxf8l' ))); R. Griškevičius, Saugus programavimas, VGTU,

8 Kintamujų inicializacija Kalbose, kur kintamieji yra polimorfiniai, ir reikšmės priskyrimas inicializuoja kintamąjį, pvz. php, vbs, python, dažnai galima sutikti kodą: $param1 = ""; if(... ) $param1 = "a" else $param1 = "b"; Tačiau suteikiant default reikšmę kintamajam iš karto sutrumpėja kodas ir padidėja aiškumas: $param1 = "b"; if(... ) $param1 = "a"; R. Griškevičius, Saugus programavimas, VGTU,

9 All input is evil Taikoma visur, kur tik sutinkami įvesties duomenys: WWW puslapiai SQL injekcija, XSS ir t.t. Įvairūs GUI Mažiau pavojinga, jei vartotojas dirba su lokalia sistema Jei GUI yra nutolusios sistemos interfeisas, galioja taisyklės, panašios į WWW aplikacijų saugumo Parametriniai ir duomenų failai Tikrinti, ar vartotojas negali pakišti savo perdaryto failo Parametruose apriboti vartotojui keisti kritines parametrų sekcijas Parametrai su nuoroda į failus Tikrinti failo tipą: Windows pagal plėtinį, Unix file komanda Tiktai santykinės nuorodos į failus! R. Griškevičius, Saugus programavimas, VGTU,

10 Koks bus rezultatas? #include <stdio.h> int main( int argc, char** argv ) { int i = 0; int j = 0; int k = 0; } for( i = 0; i < 10; i++ ) j++, k++; printf( "j=%d k=%d\n", j, k ); R. Griškevičius, Saugus programavimas, VGTU,

11 C kablelis C kablelis yra dažnai užmirštamas, todėl kartais gali būti naudojamas savotiškai kodo obfuskacijai. Kodas dešinėje suveikia nelauktai : #include <stdio.h> int main( int argc, char** argv ) { int i = 0; int j = 0; int k = 0; } for( i = 0; i < 10; i++ ) j++, k++; printf( "j=%d k=%d\n", j, k ); mygentoo> /tmp $ gcc test_comma.c -o test_comma mygentoo> /tmp $./test_comma j=10 k=10 mygentoo /tmp $ R. Griškevičius, Saugus programavimas, VGTU,

12 C ir C++ smulkmenos Neinicializuota C nuoroda potenciali skylė Operatorius new: new delete new[] delete[] pt = new myclass[3]; delete[] pt; R. Griškevičius, Saugus programavimas, VGTU,

13 Html validacija Siekiant, kad puslapis atrodytų švarus ir kultūringas, patartina jo kodą validuoti, pvz Validavimas taip pat gali padėti pamatyti klaidas ten kur html tag'ai yra generuojami programiniu būdu, t.y. programos kode. Prieš validuojant reikia prisiminti, kad kai kurie html tag'ai yra laikomi pasenusiais ir validatorius jiems meta klaidą: align, alink, background, bgcolor, color, hspace, link, size, text, type, vlink, vspace visi šie keičiami į CSS parametrus R. Griškevičius, Saugus programavimas, VGTU,

14 Kodo auditas Rankinis Gali identifikuoti klaidas/pažeidžiamumus, kurių neidentifikuos automatinės priemonės Tačiau reikalingas patyręs auditorius Penetration testing Sistemos streso testas simuliuojant piktavališką veikimą Metodika varijuoja nuo pilnai juodos dėžės iki baltos dėžės principo. Ypatingai tinka WEB aplikacijoms, kadangi http protokolas yra lengvai simuliuojamas Automatinė (statinė) kodo analizė Daug įvairių įrankių Vienas ar kitas įrankis veikia tik tam tikroms prg. kalboms R. Griškevičius, Saugus programavimas, VGTU,

15 Automatinio kodo audito įrankiai 1 RATS (Rough Auditing Tool for Security) / C++, PHP, Python, Ruby, C#, ColdFusion, Java, JSP, PL/SQL, T-SQL, XML, VB.NET Windows, *nix Mokamas, daugiau nei 1K$ už licenziją Yasca Atviras kodas (BSD licenzija) Windows, *nix PHP variklis C++, Java,.NET, ASP, Perl, PHP, Python, Cobol, etc Turi savo varikliukus, kitais atvejais pasijungia išorinius, pvz. Java atveju pasijungia sau JLint R. Griškevičius, Saugus programavimas, VGTU,

16 Automatinio kodo audito įrankiai 2 Cppcheck cppcheck.wiki.sourceforge.net Atminties nutekėjimai (memory leak), buferio perpildymas, senos funkcijos ir t.t. GUI priklausomas nuo QT interfeiso graudit elementarus tikrinimo scenarijus pasitelkiant bash, grep, sed GUI nėra Atviras kodas, Windows, *nix asp, jsp, perl, php, python R. Griškevičius, Saugus programavimas, VGTU,

17 SWAAT Automatinio kodo audito įrankiai 3 XML išvestis Pagal nutylėjimą turi bazes Python, Perl, PHP, C++ Bazės nuolat pildomos Atviras kodas, Unix aplinkose veikia su Mono, kadangi parašyta C# PHP bug scanner raz0r.name/releases/php-bug-scanner Laisvas naudojimas, Windows Rusų chakerių kūrinys, instrukcijos, puslapis rusiški R. Griškevičius, Saugus programavimas, VGTU,

18 Pixy Automatinio kodo audito įrankiai 4 pixybox.seclab.tuwien.ac.at Laisvas naudojimas, Unix, Windows Veikimas skiriasi nuo analogų: kuriamas duomenų srautų grafas ir sekami duomenų srautai. Skirtas daugiausia XSS ir SQL injekcijos aptikimui Grafai pateikiami vaizdžiai Klockwork Insight Shareware, Windows C, C++, Java, C# (beta) Integruojasi su VS ir Eclipse C++, C#, Java R. Griškevičius, Saugus programavimas, VGTU,

19 Automatinio kodo audito įrankiai 5 Coverity Prevent Static Analysis Shareware, Windows C, C++, Java, C# Vienas populiariausių ir plačiausiai žinomų Integracija su gcc ir MS kompiliatoriais ir aplinkomis Eclipse, VS OWASP Code Crawler Java Pilnas pažeidžiamumo aprašymas R. Griškevičius, Saugus programavimas, VGTU,

20 Automatinio kodo audito įrankiai 6 Grendel Scan Juodos dėžės WEB skaneris, penetration test įrankis, fuzz testavimo įrankis Veikia Java 5 aplinkoje Windows, *nix Vidinis proxy http srauto kontrolei http fuzz eris paslėptų katalogų paieška, duomenų apie nutolusią sistemą surinkimo modulis CSRF skaneris R. Griškevičius, Saugus programavimas, VGTU,

21 Kai reikia įrodinėti pažeidžiamumą Metasploit Framework Pagalba: Metasploit pagalbiniai aprašymai (tutorials) ir video medžiaga: R. Griškevičius, Saugus programavimas, VGTU,

WWW aplikacijų saugumas 2

WWW aplikacijų saugumas 2 WWW aplikacijų saugumas 2 Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009

More information

Come to the TypeScript

Come to the TypeScript Come to the TypeScript we have type hinting! Sergej Kurakin Sergej Kurakin Amžius: 36 Dirbu: NFQ Technologies Pareigos: Programuotojas Programuoti pradėjau mokytis 1996 metais. Programuotoju dirbu nuo

More information

Buferio perpildymo klaida Įvadas, techniniai klausimai

Buferio perpildymo klaida Įvadas, techniniai klausimai Buferio perpildymo klaida Įvadas, techniniai klausimai Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2009-10-16 R. Griškevičius, Saugus

More information

Kas yra masyvas? Skaičių masyvo A reikšmės: Elementų indeksai (numeriai): Užrašymas Turbo Paskaliu: A[1] A[2] A[3] A[4] A[5]

Kas yra masyvas? Skaičių masyvo A reikšmės: Elementų indeksai (numeriai): Užrašymas Turbo Paskaliu: A[1] A[2] A[3] A[4] A[5] Masyvas 2013 1 Vienmatis masyvas Veiksmai su masyvo elementais: reikšmių priskyrimas ir išvedimas, paieška, rikiavimas. Masyvų perdavimas procedūros (funkcijos) parametrais. 2 Kas yra masyvas? Masyvu vadinamas

More information

C programavimo kalba. 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() )

C programavimo kalba. 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() ) C programavimo kalba 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() ) Sąlygos operatorius if - else Sąlygos operatoriai skirti perduoti programos vykdymą vienai ar kitai programos šakai. Operatorius

More information

C++ programavimo kalba

C++ programavimo kalba C++ programavimo kalba Operatorių perkrovimas (7 paskaita) Operatorių perdengimas Programavimo kalbose naudojami operatoriai pasižymi polimorfizmu (daugiavariantiškumu). Kaip pavyzdys gali būti operatorius

More information

El. pašto konfigūravimas

El. pašto konfigūravimas El. pašto konfigūravimas Outlook Express (integruota Windows XP) elektroninio pašto klientas Žemiau pateikta instrukcija, kaip sukonfigūruoti savo elektroninį paštą vartotojams, turintiems elektroninio

More information

Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras. Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2008-2009 m. m. pavasario semestras Java grafinės bibliotekos AWT (Abstract Window Toolkit) Swing 2009.04.09 P.Kasparaitis. Objektinis

More information

JAVA pagrindai Lek. Liudas Drejeris

JAVA pagrindai Lek. Liudas Drejeris JAVA pagrindai Lek. Liudas Drejeris Programa (1) Programa, tai eilė instrukcijų (vadinamų programiniais sakiniais), kurie vykdomi paeiliui, kol gaunamas norimas rezultatas. Programa (2) Programa (2) /*

More information

C++ programavimo kalba. Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita)

C++ programavimo kalba. Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita) C++ programavimo kalba Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita) Konstruktorius Sukuriant objektą, jo duomenims paprastai turi būti priskiriamos pradinės

More information

Trumpai-ilga istorija

Trumpai-ilga istorija Įvadas į Web Services Kas yra Web Service? Kas ką žino??? 70-ieji: Mainframe Trumpai-ilga istorija 80-ieji: Client-Server Istorijos 90-ieji: Web 2000: SOA 2010: Cloud Computing Šaltinis: Sergejus Barinovas,

More information

Windows saugumo požiūriu

Windows saugumo požiūriu Windows saugumo požiūriu Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2009-09-25 R. Griškevičius, Saugus programavimas, VGTU, 2009 1

More information

C programavimo kalba. 5 paskaita (Funkcijos, masyvai)

C programavimo kalba. 5 paskaita (Funkcijos, masyvai) C programavimo kalba 5 paskaita (Funkcijos, masyvai) Funkcijų pavyzdys // Skaičių lyginimo programa #include void pmax(int, int); /* prototipas */ int main() {int i, j; for (i = -10; i

More information

A Lithuanian Verbalization Template for ORM conceptual models and rules

A Lithuanian Verbalization Template for ORM conceptual models and rules A Lithuanian Verbalization Template for ORM conceptual models and rules Mustafa Jarrar, Vrije Universiteit Brussel, Belgium. (Contact Author) Maria Keet, Free University of Bozen-Bolzano, Italy. Juozas

More information

Parengė ITMM Artūras Šakalys 1

Parengė ITMM Artūras Šakalys 1 2014.02.02 Parengė ITMM Artūras Šakalys 1 2014.02.02 Parengė ITMM Artūras Šakalys 2 Kaip suprantame masyvą? Pavyzdys: Peteliškių šeima; Gėlių laukas; 2014.02.02 Parengė ITMM Artūras Šakalys 3 Kaip suprasti

More information

Finding Vulnerabilities in Source Code

Finding Vulnerabilities in Source Code Finding Vulnerabilities in Source Code Jason Miller CSCE 813 Fall 2012 Outline Approaches to code review Signatures of common vulnerabilities Language-independent considerations Tools for code browsing

More information

Polimorfizmas. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Polimorfizmas. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras. Polimorfizmas Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2009-2010 m. m. pavasario semestras Dar apie paveldėjimą Java kalboje kiekvienas paveldėtos klasės objektas gali būti naudojamas ten, kur

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

IronWASP (Iron Web application Advanced Security testing Platform)

IronWASP (Iron Web application Advanced Security testing Platform) IronWASP (Iron Web application Advanced Security testing Platform) 1. Introduction: IronWASP (Iron Web application Advanced Security testing Platform) is an open source system for web application vulnerability

More information

Redis Ma as, greitas, galingas. Specialiai VilniusPHP

Redis Ma as, greitas, galingas. Specialiai VilniusPHP Redis Ma as, greitas, galingas Specialiai VilniusPHP 2013.06.06 Sergej Kurakin Na, Jūs mane jau nekarta matėte, tai nieko nesakysiu apie save. Kaip aš susipa inau! Tai buvo prieš keletą metų! Projektas

More information

Center for Systems and Software Engineering University of Southern California. Center for Systems And Software Engineering. UCC v.2011.

Center for Systems and Software Engineering University of Southern California. Center for Systems And Software Engineering. UCC v.2011. Center for Systems And Software Engineering UCC v.2011.10b Release Notes Page 1 of 7 1. Introduction This document provides the release notes for the UCC v.2011.10b. Unified CodeCount (UCC) is a code counting

More information

Pasirenkamojo modulio kūrybinio darbo atlikimas ir vertinimas

Pasirenkamojo modulio kūrybinio darbo atlikimas ir vertinimas Pasirenkamojo modulio kūrybinio darbo atlikimas ir vertinimas Pasirenkamojo modulio kūrybinis darbas atliekamas keliais etapais: kūrybinio darbo temos (problemos / užduoties) pasirinkimas ir derinimas

More information

Web servisai WSDL. Osvaldas Grigas

Web servisai WSDL. Osvaldas Grigas Web servisai WSDL Osvaldas Grigas Web servisų aprašymas Kiekvienas web servisas yra unikalus Jis turi adresą(arba kelis adresus), kuriuo į jį galima kreiptis. Jis supranta tik tam tikros struktūros įeinančius

More information

Coding for Penetration

Coding for Penetration Coding for Penetration Testers Building Better Tools Jason Andress Ryan Linn ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Syngress is

More information

ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV

ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV Pagrindas OS X, skirtas ARM įrenginiams Programavimo aplinka: XCode ir Objective-C Programavimo kompiuteris -

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University! Gives

More information

Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos struktūra; Sudaroma galimy

Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos struktūra; Sudaroma galimy C programavimo kalba 12 paskaita (Daugiafailinės programos, laiko ir datos funkcijos) Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos

More information

ĮVADAS JVM Java Virtual Machine Java virtualios mašinos (JVM) JVM write once, run everywhere

ĮVADAS JVM Java Virtual Machine Java virtualios mašinos (JVM) JVM write once, run everywhere ĮVADAS The Java programming language was introduced in 1995 by Sun Microsystems which has since merged into Oracle Corporation. Derived from languages such as C and C++. Pradžioje Java buvo skirta programuoti

More information

Intermediate Programming, Spring 2017*

Intermediate Programming, Spring 2017* 600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general

More information

82V391x / 8V893xx WAN PLL Device Families Device Driver User s Guide

82V391x / 8V893xx WAN PLL Device Families Device Driver User s Guide 82V391x / 8V893xx WAN PLL Device Families Device Driver Version 1.2 April 29, 2014 Table of Contents 1. Introduction... 1 2. Software Architecture... 2 2.1. Overview... 2 2.2. Hardware Abstraction Layer

More information

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology Java Applets, etc. Instructor: Dmitri A. Gusev Fall 2007 CS 502: Computers and Communications Technology Lecture 25, December 5, 2007 CGI (Common Gateway Interface) CGI is a standard for handling forms'

More information

1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem and Opportunity Identification D) Development

1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem and Opportunity Identification D) Development Technology In Action, Complete, 14e (Evans et al.) Chapter 10 Behind the Scenes: Software Programming 1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem

More information

Programming Language Basics

Programming Language Basics Programming Language Basics Lecture Outline & Notes Overview 1. History & Background 2. Basic Program structure a. How an operating system runs a program i. Machine code ii. OS- specific commands to setup

More information

Web technologijos. Hostingas JavaScript PHP

Web technologijos. Hostingas JavaScript PHP jquery & PHP Web technologijos Hostingas JavaScript PHP Kelios hostingo kompanijos serveriai.lt hostex.lt hostinger.lt Nemokamas hostingas su PHP/mysql http://mindaugas.zz.mu/jm1.html Hostingo paslaugų

More information

More Programming Languages. Spring 2014 Carola Wenk

More Programming Languages. Spring 2014 Carola Wenk More Programming Languages Spring 2014 Carola Wenk Web Scripting We ve seen how (relatively) easy it is to create a new language. This suggests that languages can actually be application-specific. Let

More information

Evaluation of Static Analysis Tools for Finding Vulnerabilities in Java and C/C++ Source Code

Evaluation of Static Analysis Tools for Finding Vulnerabilities in Java and C/C++ Source Code Evaluation of Static Analysis Tools for Finding Vulnerabilities in Java and C/C++ Source Code Rahma Mahmood, Qusay H. Mahmoud Department of Electrical, Computer & Software Engineering University of Ontario

More information

PHP Lietuviškai. Turinys

PHP Lietuviškai. Turinys PHP Lietuviškai Informacija iš interneto pakampių surinko, visa savaitgalį prie Easy PDF sėdėjo ir kankinosi Justinas L. aka scooox. Taigi, kad visi girdėtų, sakau: šitas dokumentas yra surinktas iš visų

More information

COMsW Introduction to Computer Programming in C

COMsW Introduction to Computer Programming in C OMsW 1003-1 Introduction to omputer Programming in Lecture 9 Spring 2011 Instructor: Michele Merler http://www1.cs.columbia.edu/~mmerler/comsw1003-1.html 1 Are omputers Smarter than Humans? Link http://latimesblogs.latimes.com/technology/2011/02/ibms-watson-on-jeopardy-computer-takes-big-leadover-humans-in-round-2.html

More information

Kompiuterių tinklai UDP, NAT, SOCKS

Kompiuterių tinklai UDP, NAT, SOCKS Kompiuterių tinklai UDP, NAT, SOCKS Rolandas Griškevičius rolandas.griskevicius@vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2010-11-03 R. Griškevičius, Kompiuterių tinklai, VGTU,

More information

Tutorial Point Servlets Pdf

Tutorial Point Servlets Pdf Tutorial Servlets Pdf Free PDF ebook Download: Tutorial Servlets Pdf Download or Read Online ebook tutorial point servlets pdf in PDF Format From The Best User Guide Database on JSP, servlets, Struts,

More information

Vilniaus universitetas Fizikos fakultetas Radiofizikos katedra R. Grigalaitis Programavimas (Programavimo C++ kalba paskaitų konspektas)

Vilniaus universitetas Fizikos fakultetas Radiofizikos katedra R. Grigalaitis Programavimas (Programavimo C++ kalba paskaitų konspektas) Vilniaus universitetas Fizikos fakultetas Radiofizikos katedra R. Grigalaitis Programavimas (Programavimo C++ kalba paskaitų konspektas) Vilnius 2010 - 2 - Turinys PROGRAMAVIMO SAMPRATA... - 4 - KINTAMIEJI

More information

Web Architecture AN OVERVIEW

Web Architecture AN OVERVIEW Web Architecture AN OVERVIEW General web architecture Historically, the client is a web browser But it can be also A mobile application A desktop application Other server applications Internet Server(s)

More information

Code review guide. Notice: Read about the language that you will test its code, if you don t have an idea about the language this will be difficult.

Code review guide. Notice: Read about the language that you will test its code, if you don t have an idea about the language this will be difficult. Code review guide Author: Jameel Nabbo Website: www.jameelnabbo.com Table of contents Introduction Code review Checklist Steps to perform on code review task Tips for code review Starting the Code review

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University Gives

More information

CSci 4061 Introduction to Operating Systems. Programs in C/Unix

CSci 4061 Introduction to Operating Systems. Programs in C/Unix CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations

More information

C++ programavimo kalba

C++ programavimo kalba C++ programavimo kalba Šablonai (10 paskaita) Kodėl šablonai (templates)? Programuojant egzistuoja situacijos, kai reikia atlikti tuos pačius veiksmus su skirtingais duomenų tipais (pvz. modulio radimas,

More information

2-3 PASKAITOS. Paprasčiausia programa:

2-3 PASKAITOS. Paprasčiausia programa: 2-3 PASKAITOS Turinys: Paprasčiausios programos pavyzdys. Darbas su programavimo terpėmis. Duomenys. Duomenų tipai ir charakteristikos. Paprasčiausia įvestis/išvestis. Paprasčiausia programa: /* Pirmoji

More information

C programos struktūra ir funkcijos

C programos struktūra ir funkcijos C programos struktūra ir funkcijos 1. C programą sudaro 1 arba daugiau failų (arba kompiliavimo vienetų). programa ::= { failas 1+ 2. C programos failas tai vienas paskui kitą einantys kintamųjų, funkcijų

More information

Inf 202 Introduction to Data and Databases (Spring 2010)

Inf 202 Introduction to Data and Databases (Spring 2010) Inf 202 Introduction to Data and Databases (Spring 2010) Jagdish S. Gangolly Informatics CCI SUNY Albany April 22, 2010 Database Processing Applications Standard Database Processing Client/Server Environment

More information

Paveikslėliai. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Paveikslėliai. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras. Paveikslėliai Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2008-2009 m. m. pavasario semestras Klasė Image Priklauso paketui java.awt Abstrakti klasė paveldėta iš Object Tai visų grafinių paveikslėlių

More information

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2 CS 220: Introduction to Parallel Computing Beginning C Lecture 2 Today s Schedule More C Background Differences: C vs Java/Python The C Compiler HW0 8/25/17 CS 220: Parallel Computing 2 Today s Schedule

More information

C++ programavimo kalba

C++ programavimo kalba C++ programavimo kalba Klasės, klasių savybės, vardų erdvės (3 paskaita) OOP Struktūrinio programavimo modelio problema: Didelės programos tampa labai sudėtingos t.y. egzistuoja tūkstančiai kintamųjų ir

More information

Micro Focus Fortify Application Security

Micro Focus Fortify Application Security Micro Focus Fortify Application Security Petr Kunstat SW Consultant +420 603 400 377 petr.kunstat@microfocus.com My web/mobile app is secure. What about yours? High level IT Delivery process Business Idea

More information

CSE 303 Lecture 8. Intro to C programming

CSE 303 Lecture 8. Intro to C programming CSE 303 Lecture 8 Intro to C programming read C Reference Manual pp. Ch. 1, 2.2-2.4, 2.6, 3.1, 5.1, 7.1-7.2, 7.5.1-7.5.4, 7.6-7.9, Ch. 8; Programming in C Ch. 1-6 slides created by Marty Stepp http://www.cs.washington.edu/303/

More information

Tautvydas Dagys Microsoft Lietuva

Tautvydas Dagys Microsoft Lietuva Tautvydas Dagys Microsoft Lietuva Programos akademinėms institucijoms ir studentams Studentų partnerių programa Akademinės institucijoms Studentams MSDN AA Tai efektyvus būdas aprūpinti savo laboratorijas/klases

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University C: A High-Level Language! Gives

More information

Design & Implementation Overview

Design & Implementation Overview P Fall 2017 Outline P 1 2 3 4 5 6 7 P P Ontological commitments P Imperative l Architecture: Memory cells variables Data movement (memory memory, CPU memory) assignment Sequential machine instruction execution

More information

FILE - JAVA WEB SERVICE TUTORIAL

FILE - JAVA WEB SERVICE TUTORIAL 20 February, 2018 FILE - JAVA WEB SERVICE TUTORIAL Document Filetype: PDF 325.73 KB 0 FILE - JAVA WEB SERVICE TUTORIAL Web Services; Java Security; Java Language; XML; SSL; 1 2 3 Page 1 Next. Web service

More information

Hands-On Ethical Hacking and Network Defense 2 nd edition

Hands-On Ethical Hacking and Network Defense 2 nd edition Hands-On Ethical Hacking and Network Defense 2 nd edition Chapter 7 Programming for Security Professionals Last modified 9-29-16 Objectives Explain basic programming concepts Write a simple C program Explain

More information

Naujos galimybės su Lotus Notes 8.5.1: naudotojams ir programuotojams

Naujos galimybės su Lotus Notes 8.5.1: naudotojams ir programuotojams Naujos galimybės su Lotus Notes 8.5.1: naudotojams ir programuotojams IBM Programinės įrangos diena 2009 m. spalio 21 d. Andrejus Chaliapinas, IĮ Infosana vadovas http://www.infosana.com Prezentacijos

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations

More information

Kurt Schmidt. October 30, 2018

Kurt Schmidt. October 30, 2018 to Structs Dept. of Computer Science, Drexel University October 30, 2018 Array Objectives to Structs Intended audience: Student who has working knowledge of Python To gain some experience with a statically-typed

More information

Interneto technologijų taikymai

Interneto technologijų taikymai Interneto technologijų taikymai Mantas Puida (mantasp@gmail.com) VI paskaita Entity pirminis raktas Kiekviena Entity klasė privalo turėti pirminį raktą (Primary Key). Jei turima Entity objektų hierarchija,

More information

Pla$orm independence and languages. CSCI 136: Fundamentals of Computer Science II Keith Vertanen

Pla$orm independence and languages. CSCI 136: Fundamentals of Computer Science II Keith Vertanen Pla$orm independence and languages CSCI 136: Fundamentals of Computer Science II Keith Vertanen Language types: Compiled e.g. C++ Overview Intermediate / bytecode e.g. Java,.NET Interpreted e.g. PHP, JavaScript

More information

WebStore9 Services. Web Development Services

WebStore9 Services. Web Development Services WebStore9 Services Web Development Services ASP.Net MVC Development Services ASP.Net Development Services ColdFusion Development Services SharePoint Development Services Classic ASP Development Services

More information

Deep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems

Deep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems Deep C Multifile projects Getting it running Data types Typecasting Memory management Pointers Fabián E. Bustamante, Fall 2004 Multifile Projects Give your project a structure Modularized design Reuse

More information

Instructor s Notes Web Data Management Web Client/Server Concepts. Web Data Management Web Client/Server Concepts

Instructor s Notes Web Data Management Web Client/Server Concepts. Web Data Management Web Client/Server Concepts Instructor s Web Data Management Web Client/Server Concepts Web Data Management 152-155 Web Client/Server Concepts Quick Links & Text References Client / Server Concepts Pages 4 11 Web Data Mgt Software

More information

CRAXweb: Web Testing and Attacks through QEMU in S2E. Shih-Kun Huang National Chiao Tung University Hsinchu, Taiwan

CRAXweb: Web Testing and Attacks through QEMU in S2E. Shih-Kun Huang National Chiao Tung University Hsinchu, Taiwan CRAXweb: Web Testing and Attacks through QEMU in S2E Shih-Kun Huang National Chiao Tung University Hsinchu, Taiwan skhuang@cs.nctu.edu.tw Motivation Symbolic Execution is effective to crash applications

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified by Chris Wilcox, Yashwant Malaiya Colorado State University C: A High-Level Language

More information

JAVA PROGRAMOS KODO ANALIZĖS NAUDOJANT SCRO ONTOLOGIJĄ GALIMYBIŲ TYRIMAS

JAVA PROGRAMOS KODO ANALIZĖS NAUDOJANT SCRO ONTOLOGIJĄ GALIMYBIŲ TYRIMAS KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS VYTENIS SODAITIS JAVA PROGRAMOS KODO ANALIZĖS NAUDOJANT SCRO ONTOLOGIJĄ GALIMYBIŲ TYRIMAS Baigiamasis magistro projektas Vadovas doc. dr. R. Butkienė

More information

Žiniatinklio turinio valdymo sistemų saugumo tyrimas

Žiniatinklio turinio valdymo sistemų saugumo tyrimas KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS KOMPIUTERIŲ KATEDRA Vitalius Radzevičius Žiniatinklio turinio valdymo sistemų saugumo tyrimas Magistro darbas Darbo vadovas dr. Audronė Janavičiūtė

More information

Kompiuterių tinklai. IPv6 ir tuneliai

Kompiuterių tinklai. IPv6 ir tuneliai Kompiuterių tinklai IPv6 ir tuneliai Rolandas Griškevičius rolandas.griskevicius@vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 00--08 R. Griškevičius, Kompiuterių tinklai, VGTU, 00

More information

ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA. Mindaugas Gapšys BAKALAURO DARBAS

ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA. Mindaugas Gapšys BAKALAURO DARBAS ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Mindaugas Gapšys Informatikos specialybės IV kurso dieninio skyriaus studentas Bash skriptų panaudojimas Unix/Linux operacinių

More information

Struktūrų sintaksė Struktūra tai vienodo arba skirtingo tipo kintamųjų rinkinys. Sintaksė: struct vardas { ; type1 var1; type2 var2;... typen varn; //

Struktūrų sintaksė Struktūra tai vienodo arba skirtingo tipo kintamųjų rinkinys. Sintaksė: struct vardas { ; type1 var1; type2 var2;... typen varn; // C programavimo kalba 10 paskaita (Struktūros) Struktūrų sintaksė Struktūra tai vienodo arba skirtingo tipo kintamųjų rinkinys. Sintaksė: struct vardas { ; type1 var1; type2 var2;... typen varn; // Gale

More information

Release Notes. UCC v Copyright (C) University of Southern California. Center for Systems and Software Engineering

Release Notes. UCC v Copyright (C) University of Southern California. Center for Systems and Software Engineering Release Notes UCC v.2013.04 Copyright (C) 1998-2014 University of Southern California Center for Systems and Software Engineering 1 Introduction This document provides the release notes for the UCC v.2013.04.

More information

2017 m. pagrindinės sesijos informacinių technologijų valstybinio brandos egzamino programavimo užduoties galimi sprendimai

2017 m. pagrindinės sesijos informacinių technologijų valstybinio brandos egzamino programavimo užduoties galimi sprendimai Pavyzdys A 2017 m. pagrindinės sesijos informacinių technologijų valstybinio brandos egzamino programavimo užduoties galimi sprendimai int konvertuojamas(int skaic, int id); char konvertuojamas2(int dal);

More information

UCC Release Notes v Center for Systems and Software Engineering University of Southern California. Release Notes. UCC v.2011.

UCC Release Notes v Center for Systems and Software Engineering University of Southern California. Release Notes. UCC v.2011. Release Notes UCC v.2011.10 Copyright (C) 1998-2012 University of Southern California Center for Systems and Software Engineering 1 Introduction This document provides the release notes for the UCC v.2011.10.

More information

CS 300 Leftovers. CS460 Pacific University 1

CS 300 Leftovers. CS460 Pacific University 1 CS 300 Leftovers Pacific University 1 argc/argv The C Programming Language section 5.10, page 114 int main(int argc, char** argv) argc - number of entries in argv argv - array of character pointers containing

More information

INFORMACINĖS SISTEMOS INVENTORIAUS VALDYMO SISTEMA

INFORMACINĖS SISTEMOS INVENTORIAUS VALDYMO SISTEMA ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Denas Pavlavičius Informatikos specialybės II kurso dieninio skyriaus studentas INFORMACINĖS SISTEMOS INVENTORIAUS VALDYMO

More information

Coding for Penetration Testers Building Better Tools

Coding for Penetration Testers Building Better Tools Coding for Penetration Testers Building Better Tools Second Edition Jason Andress Ryan Linn Clara Hartwell, Technical Editor ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO

More information

Introduction to Supercomputing

Introduction to Supercomputing Introduction to Supercomputing TMA4280 Introduction to UNIX environment and tools 0.1 Getting started with the environment and the bash shell interpreter Desktop computers are usually operated from a graphical

More information

Testing from the Cloud: Is the sky falling?

Testing from the Cloud: Is the sky falling? AppSec USA 2011 The OWASP Foundation http://www.owasp.org Testing from the Cloud: Is the sky falling? Matt Tesauro OWASP Foundation Board Member, WTE Project Lead matt.tesauro@owasp.org In between Jobs

More information

New programming language introduced by Microsoft contained in its.net technology Uses many of the best features of C++, Java, Visual Basic, and other

New programming language introduced by Microsoft contained in its.net technology Uses many of the best features of C++, Java, Visual Basic, and other C#.NET? New programming language introduced by Microsoft contained in its.net technology Uses many of the best features of C++, Java, Visual Basic, and other OO languages. Small learning curve from either

More information

CAAM 420 Daily Note. Scriber: Qijia Jiang. Date: Oct.16. Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise.

CAAM 420 Daily Note. Scriber: Qijia Jiang. Date: Oct.16. Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise. CAAM 420 Daily Note Scriber: Qijia Jiang Date: Oct.16 1 Announcement Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise. 2 Make Convention Make syntax for library directories and library

More information

K R I S T I N A L A P I N. I dalis. Matematikos ir statistikos studijų krypčių pirmo kurso studentams

K R I S T I N A L A P I N. I dalis. Matematikos ir statistikos studijų krypčių pirmo kurso studentams V I L N I A U S U N I V E R S I T E T AS M A T E M A T I K O S I R I N F O R M A T I K O S F A K U L T E T A S P R O G R A M Ų S I S T E M Ų K A T E D R A K R I S T I N A L A P I N Programavimas C I dalis

More information

Paskirstytos atminties lygiagretusis programavimas Įvadas į MPI

Paskirstytos atminties lygiagretusis programavimas Įvadas į MPI Paskirstytos atminties lygiagretusis programavimas Įvadas į MPI Distributed memory parallel programming Paskirstytos atminties lygiagretieji kompiuteriai Kiekvienas procesorius turi tik savo nuosavą atmintį

More information

Vb Net Tutorial For Beginners Visual Studio 2010 Create Web Service

Vb Net Tutorial For Beginners Visual Studio 2010 Create Web Service Vb Net Tutorial For Beginners Visual Studio 2010 Create Web Service In this article I will explain a tutorial to create a simple Windows Service with sample Net Web Application using Visual Studio 2010

More information

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first.

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first. As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations

More information

Objektiškai Orientuotas Programavimas su C++

Objektiškai Orientuotas Programavimas su C++ Vilniaus Universitetas Matematikos ir Informatikos fakultetas Kompiuterijos katedra Saulius Narkevičius Objektiškai Orientuotas Programavimas su C++ paskaitų konspektai pavasaris 2005 Turinys Pratarmė...

More information

PAIEŠKOS SISTEMŲ OPTIMIZAVIMO METODŲ ANALIZĖ

PAIEŠKOS SISTEMŲ OPTIMIZAVIMO METODŲ ANALIZĖ PAIEŠKOS SISTEMŲ OPTIMIZAVIMO METODŲ ANALIZĖ Donatas Veikutis, Simona Ramanauskaitė UAB Komeksimas, Šiaulių universitetas Įvadas Visuomenė, internetas ir jame esanti informacija dabar turi vieną didžiausių

More information

Conditional Compilation

Conditional Compilation Conditional Compilation printf() statements cab be inserted code for the purpose of displaying debug information during program testing. Once the program is debugged and accepted as "working'', it is desirable

More information

Application Security through a Hacker s Eyes James Walden Northern Kentucky University

Application Security through a Hacker s Eyes James Walden Northern Kentucky University Application Security through a Hacker s Eyes James Walden Northern Kentucky University waldenj@nku.edu Why Do Hackers Target Web Apps? Attack Surface A system s attack surface consists of all of the ways

More information

A D V I S O R Y S E R V I C E S. Web Application Assessment

A D V I S O R Y S E R V I C E S. Web Application Assessment A D V I S O R Y S E R V I C E S Web Application Assessment March 2009 Agenda Definitions Landscape of current web applications Required skills Attack surface Scope Methodology Soft skills 2 Definitions

More information

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an  with the URL Grading: CS 183 4/6/2010 Build a simple HTML page, topic of your choice Will use this as a basis and gradually and add more features as the class progresses Need to be done with your favorite text editor, no visual

More information

Tutorial Php Coding Projects Pdf Beginners With Examples

Tutorial Php Coding Projects Pdf Beginners With Examples Tutorial Php Coding Projects Pdf Beginners With Examples Learning PHP Basic With project 2015 part 1,Beginner PHP Tutorial This is an php. Programming Tutorials. SubscribeSubscribed php tutorial for beginners

More information

Ruby Programming Professional Made Easy 2nd Edition: Expert Ruby Programming Language Success In A Day For Any Computer User (Ruby, HTML, C

Ruby Programming Professional Made Easy 2nd Edition: Expert Ruby Programming Language Success In A Day For Any Computer User (Ruby, HTML, C Ruby Programming Professional Made Easy 2nd Edition: Expert Ruby Programming Language Success In A Day For Any Computer User (Ruby, HTML, C Programming,... C++. C, C++ Programming, Computer Program) By

More information

Center for Systems And Software Engineering. UCC v Release Notes. Page 1 of 7

Center for Systems And Software Engineering. UCC v Release Notes. Page 1 of 7 Center for Systems And Software Engineering UCC v.2011.05 Release Notes Page 1 of 7 1. Introduction This document provides the release notes for the UCC v.2011.05. Unified CodeCount (UCC) is a unified

More information

gfuzz: An instrumented Web application fuzzing environment Ezequiel D. Gutesman Corelabs Core Security Technologies

gfuzz: An instrumented Web application fuzzing environment Ezequiel D. Gutesman Corelabs Core Security Technologies gfuzz: An instrumented Web application fuzzing environment Ezequiel D. Gutesman Corelabs Core Security Technologies Objectives Present a working tool (prototype-poc) to test the security of a given web

More information

INT213. Active Server Pages using Visual Basic Scripting

INT213. Active Server Pages using Visual Basic Scripting INT213 Active Server Pages using Visual Basic Scripting Tim McKenna cs/~tmckenna see standards my background a non-scents environment, please. Trust your pheromones. INT213 Active Server Pages using VBScript

More information