Skip to content

marianlupascu/Bitdefender-Tech-Challenge

Repository files navigation

Bitdefender Tech Challenge 🚀

This repository contains some solutions and issues from Bitdefender TechChallenge 2018. This course took 14 weeks, and I will continue to present the details of each week.

Course 1 🎭

Course 1 consisted of solving admission problems

Course 2 👔

Course 2 consists of working with files. Some subtitles are: NTFS Filesystem, MFT FILE, Alternate Data Streams and the presentation of several functions and structures for manipulating files:

  • NTFS Structures
  • CreateFile
  • ReadFile
  • WriteFile
  • CloseHandle
  • FindFirstStreamW
  • SetFilePointer
  • GetFileAttributes
  • FindFirstFile
  • FindNextFile
  • MoveFile
  • GetFileSizeEx
  • GetFileTime
  • SetFileTime

Course 3 🔭

Course 3 consists of Threads and Synchronization. Some subtitles are: Threads Scheduling/Dispatching, Context Switching, Thread Scheduling Strategy, Mutex, Setthreadpriority and the presentation of several functions and structures for manipulating threads:

  • CreateThread
  • CreateMutex
  • CreateEvent
  • CriticalSection

And the subject statement is:

Simulation of an intersection. 🚗

Write a program that generates N (say 200) threads, each thread having a randomly chosen direction from one of the values: 0 - NS 1 - SN 2 - EW 3 - WE

On each NS or EW direction there is a simulator simulated by an event. There must still be a master thread that changes the traffic lights, giving every 90 seconds the road of a traffic light and blocking the other with a period of 3 seconds in which both are red to release the intersection. Every thread arriving at the intersection checks if the cars are in front of him in the same direction and calculates the time needed to pass as the number of cars in front of him + 3 seconds from the moment when the traffic light is green, if not green can pass barely after the cars in front of him passed + another 3 seconds.

Course 4 and 5 📏

Course 4 and Course 5 is all about threads, which brings in addition:

  • Find out the number of processors (GetSystemInfo)
  • Semaphores (CreateSemaphore, WaitForSingleObject, WaitForMultipleObjects, RelaseSemaphore)
  • SignalObjectAndWait
  • ConditionVariable (SleepConditionVariableCS, WakeConditionVariable)
  • Barrier (InitializeSynchronizationBarrier, EnterSynchronizationBarrier, DeleteSynchronizationBarrier)
  • DLL

Course 6 and 7 ✏️

Courses 6 and 7 are about processes, communication between processes, synchronizations, environment variables, named pipes and shared memory.

Course 8 and 9 ✒️

Courses 8 and 9 are about Windows services and networking.

Course 10 and 11 🔋

Courses 10 and 11 is all about Advanced I/O. ome subtitles are: Overlapped Structure, I/O completion ports, Intercepting exceptions, HARDLINKS, _WINHTTP, Prefetch files and The NTFS log.

Course 12 and 13 🔍

Course 12 and Course 13 is all about debugging and contains informations about:

  • Deadlocks
  • Memories crash
  • LeakMemory
  • DLLs
  • Registers
  • various debugging tools on Windows such as:

Course 14 🍕

During the 14th we held the final test. 📚 💻

Releases

No releases published

Packages

No packages published