-
Security Engineering Analysis Framework Notes…
Good security engineering requires 4 things: Policy: what you’re supposed to achieve Mechanism–the ciphers, access controls, hardware tamper-resistance, and other machinery that you assemble in order to implement the policy. Assurance–the amount of reliance you can place on each particular mechanism. Incentive–the motive that the people guarding & maintaining the system have to do their job properly.
-
Security + Course Notes
Threats, Attacks & Vulnerabilities Malware Malicious software; Broad term; there are many kinds of malware. Viruses Cyrpto-malware Ransomware Worms Trojan Horse Rootkits Keyloggers Adware/Spyware Botnets How do you get malware? These all work together. A worm takes advantage of a vulnerability. Or, installs malware that includes a remote-access backdoor. Bot may be installed later. Your computer must run a program. Email link–Don’t Click Links! Web page pop-ups Drive-by download Worm Your computer is vulnerable Operating System–keep updated! OS & applications. Viruses & Worms Viruses–malware that can reproduce itself; it doesn’t need you to click anything; it needs you to execute a program; Just simply running a program can spread a…
-
More C++ Notes…
More C++ Notes… Step 1–Define the problem to solve. Step 2–Define a solution. Step 3–Write a program that implements the solution. Step 4–Compile the program. Step 5–Link object files. Step 6–Test program. Step 7–Debug. C++ files should end in ‘.cpp‘ extension to indicate a C++ source file. Ex: name.cpp Use a C++ compiler to compile a C++ (.cpp) program. The C++ compiler sequentially goes through each source code (.cpp) file in your program & does 2 important tasks: First, it checks the code to make sure it follows the rules of the C++ language. If it does not, the compiler will give you an error to help pinpoint what needs…
-
Slackware Linux Configuration Notes
After the initial install of Linux, I am now configuring my install of Slackware Linux: Slackware Linux Configuration Notes Configure Info The first screen prompt in this next process was to “Make USB Flash Boot”. “If your computer supports booting from a USB device, it is recommended that you make a USB boot stick for your system at this time. It will boot your computer straight into the root filesystem on ‘/dev/sda2’. “Please insert a USB flash memory stick and then press ENTER to create a boot stick. WARNING! The existing contents of the USB stick will be erased.” The options are: Create–Make a USB Linux boot stick, or, Skip–Skip…
-
Arch Linux/Slackware Linux Install Notes
(Note: I first downloaded Arch Linux, and after doing that process noticed that much of the same below also applies to the install of Slackware. Also, more on Slackware install below starting with the “a” series section below.) I downloaded the Arch Linux ISO image from the Arch download site. Used “SHASUM” to verify. Now in Terminal on Mac, I entered the following (after using Disk Utility to erase the USB device): $ diskutil list (This showed a list of storage devices including my 32GB USB drive, as /dev/disk2 (external, physical). I made sure to verify the name & size so as NOT to touch my main Mac storage drive!)…
-
More Programming Notes…
Value–the representation of some entity that can be manipulated by a program. The members of a ‘type‘ are the values of that type. Data are characteristics, or information, usually numerical, that are collected through observation. In a more technical sense, data are a set of values of qualitative or quantitative variables about one or more persons or objects, while a datum (singular of data) is a single value of a single variable. In academic treatments, data are simply units of information. Data re employed in virtually every form of human organizational activity. Data are measured, collected & reported, and analyzed. Raw data (“unprocessed data” is a collection of numbers or…
-
Classes: A Deeper Look, Part 2–STRUCTURED PROGRAMMING Course Notes
Classes: A Deeper Look, Part 2 ‘const’ (Constant) Objects and ‘const’ Member Functions The keyword ‘const‘ can be used to specify that an object is not modifiable and that any attempt to modify the object should result in a compilation error. C++ compilers disallow non-const member function calls on const objects. An attempt by a const member function to modify an object of its class is a compilation error. A member function (behavior) is specified as const both in its prototype and in its definition. A const object must be initialized. Constructors & destructors cannot be declared const. const data member & reference data members must be initialized using member…
-
Classes: A Deeper Look, Part 1–STRUCTURED PROGRAMMING Course Notes
Classes: A Deeper Look, Part 1 Time Class Case Study Preprocessor directives (a.k.a. “preprocessor wrappers”)–Use preprocessor directives to form preprocessor wrappers. Ex: //prevent multiple inclusions of header file #ifndef TIME_H #define TIME_H … #endif Preprocessor directives ‘#ifndef‘ (“if not defined”) and #endif are used to prevent multiple inclusions of a header file. (If the code between these directives has not previously been included in an application, #define defines a name that can be used to prevent future inclusions, and the code is included in the source code file. Tip: Use the name of the header file in upper case with the period replaced by an underscore in the #ifndef and…
-
Pointers–STRUCTURED PROGRAMMING Course Notes
Pointers Pointer Variable Declarations & Initialization Pointers are variables that contain as their values memory addresses of other variables. The declaration: int *ptr; declares ptr to be a pointer to a variable of type int and is read, “ptr is a pointer to int.“ The *(asterisk) as used here in a declaration indicates that the variable is a pointer. There are 3 values that can be used to initialize a pointer: 0, NULL, or, an address of an object of the same type. The only integer that can be assigned to a pointer without casting is zero. Normally, a variable directly contains a specific value. A pointer contains the memory…
-
Arrays & Vectors–Arrays–STRUCTURED PROGRAMMING Course Notes
Arrays & Vectors Intro Data Structures are collections of related items. Arrays are data structures consisting of related data items of the same type. Arrays are “static” entities in that they remain the same size throughout program execution. (They may, of course, be of automatic storage class, and hence be created and destroyed each time the blocks in which they’re defined are entered & exited.) An array is a consecutive group of memory locations that share the same type. To refer to a particular location or element in an array, we specify the name of the array and the position number of the particular element in the array. A program…