Skip to content

Instantly share code, notes, and snippets.

@eanmos
eanmos / memory_layout.md
Created January 22, 2022 06:40 — forked from CMCDragonkai/memory_layout.md
Linux: Understanding the Memory Layout of Linux Executables

Understanding the Memory Layout of Linux Executables

Required tools for playing around with memory:

  • hexdump
  • objdump
  • readelf
  • xxd
  • gcore
@eanmos
eanmos / 1.sql
Last active December 27, 2021 16:55
-- 23
USE Dunaev
GO
DECLARE @дата date = '2020-12-11'
SELECT
id_поставки AS [ID Поставки],
Дата_поставки AS [Дата поставки]
FROM Поставки
WHERE Дата_поставки = date
CREATE DATABASE Бар
USE Бар
GO
CREATE TABLE Заказ(
id int IDENTITY(1,1) NOT NULL,
id_клиента int NOT NULL,
id_блюдо int NOT NULL,
id_сотрудник int NOT NULL,
@eanmos
eanmos / db.js
Last active December 20, 2021 22:56
{
/* Ссылка на обложку. */
"cover": "https://img3.labirint.ru/rc/92079d72d75894eba6fdd89f98d67ed3/246x330/books83/826283/cover.jpg?1633584332",
/* Название книги. */
"title": "Сварог. Нежный взгляд волчицы. Замок без ключа",
/* Автор. */
"author": "Бушков Александр Александрович",
/* Базовая цена. */
"price": 499,
/* Скидка, если есть. Можешь по своему усмотрению добавлять скидку. */
import { useState, useEffect } from 'react'
import { Link } from "react-router-dom"
export default function Students({ getStudents, getGroups }) {
const [state, setState] = useState(null)
useEffect(() => {
async function fetchData() {
setState({
students: await getStudents(),

Ключевой элемент в общении между процессором и внешними устройствами — это техника memory mapped I/O (в некоторых архитектурах есть возможность общаться с устройствами через I/O порты. В x86, например. Можно общаться через GPIO или ещё что-нибудь, но в современных PC memory mapped I/O — основной способ общения). Ее суть заключается в том, что определенные области памяти (адресного пространства) не являются, собственно памятью, а используются для общения с определенным устройством, которое отображено (mapped) в эту область.

Например, в IBM PC-совместимых системах (x86), в адресное пространство отображается буфер видеопамяти VGA. Если вы в real mode процессора будете писать латинские буковки в область памяти, которая начинается с адреса 0xB8000, то эти буковки будут отображаться у вас на экране (т. н. VGA text mode).

Именно так и происходит все общение с внешним устройством — запись в определенные области памяти определенных байтов. Как конкретно общаться с устройством очевидно зависит от самого железа. Собст

#!/usr/bin/env bash
# The author is https://github.com/macvk/dnsleaktest
# Many thanks!
RED='\033[0;31m'
BOLD='\033[1m'
NC='\033[0m'
api_domain='bash.ws'
error_code=1
TARGET := solution
obj-m += $(TARGET).o
solution-objs := checker.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(CURDIR) modules
# DESCRIPTION
# -----------
#
# This script parses DDS texture file header and prints the
# result to standard output.
#
# DEPENDENCIES
# ------------
#
# Depends on the `construct` library <https://github.com/construct/construct>:
@eanmos
eanmos / database.pl
Last active April 17, 2021 04:38
Prolog Homework
?- dynamic point/2.
?- dynamic male/1.
?- dynamic female/1.
shouldSave(point).
shouldSave(male).
shouldSave(female).
shouldSave(son).
shouldSave(addPath).
shouldSave(shouldSave).