Pull to refresh
2
0

maUser

Send message

типы времени выполнения

Это тоже пасхалка?)

И фразы: «я туда не копал», «сюда я давно не лазил», «я сильно не вникал, как у нас это работало» очень тригерят.

Считаю это нормально, не может же человек везде и всюду лазить и копать. На это жизни не хватит.
Бывают еще такие ситуации(и очень часто) кода работы очень много и нет времени разбираться, что там под капотом происходит.
Ну или проект легаси и с жутким кодом и в нем копаться, какой в этом бизнес-вэлью? захламлять свои знания тем чем потом скорее всего не пригодится в жизни

А зачем токарю знать при какой температуре образуется тростит?

К примеру какие?

А есть нечто подобное только что бы с телефона работало? Держать включенный комп не очень выгодно. А телефон намного проще и экономичнее выходит

Смотря сколько для вас нормальная партия, а дальше просто посчитать расход на время

А Unity не рассматривали для разработки игры? в 2018 году он был уже хорош

А будет такая подборка про кафку? Или может она уже есть?

А можно узнать как вы выполняли удаленный код? Это какая-то уязвимость была?
Это было Bare Metal? Или линуксовое окружение?
CdPosToInt 60 A21C 0000839001008690022903008010050021104500401002000F00633021104300
DsPosToInt 60 A21C 0000839001008690022903008010050021104500401002000F00633021104300

Видим, что две функции имеют одну и ту же сигнатуру, и нам нужно выбрать, какую из них использовать. Для этого слева, рядом с именем нужной функции ставим +. Я выбираю первую. То же самое повторяем с остальными строками.


А почему вы выбрали первую сигнатуру?
У вас есть какая-нибудь версия, почему могла такая коллизия сигнатур произойти?
как же быть, если вредоносное ПО обнаружит ненастоящее окружение и завершит свою работу?

Это получается можно свою домашнюю систему настроить так что бы она представлялась вирутальной машиной и теперь вирусы будут встрахе закрываться, что и антивирус можно не ставить =)
автоматизированных тулов, для локального перечисления

А что имеются ввижу за тулы? Это nmap?
А что такое pivoting?
и еще у вас в первой статье было слово заспавнить. Тоже интересно что это значит
А сколько в итог потратили времени на разработку?
К примеру изменения в конфигурации OpenSSL могут привести к тому, что ОС перестанет корректно запускаться.

OpenSSL это же всего лишь системная библиотека. Как её можно не правильно сконфигурировать?

контейнеры Docker — опять же предназначены для другого, на мой взгляд в них не очень удобно быстро прототипировать с применением того ПО, которое еще не упаковано в отдельные контейнеры.

Так у вас в LXC контейнеры тоже изначально пусты и туда нужно софт доставлять. Или вы что то другое имели ввиду?
Спасибо за ответы!
Для сравнения посмотрим на символ foo, который явно присутствует:

08 00 00 00 02 00 02 00 00 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00
Символ определяет функцию, которая находится в секции .text по адресу относительно начала секции 0x00000000, т.е. в самом начале секции, как мы видели в дизассемблерном листинге, размер функции 22 байта.

Это бинарная последовательность соответсвует же
typedef struct elf64_rela {
  Elf64_Addr r_offset;	/* Location at which to apply the action */
  Elf64_Xword r_info;	/* index and type of relocation */
  Elf64_Sxword r_addend;	/* Constant addend used to compute value */
} Elf64_Rela;


Почему тогда адрес относительно начала секции 0x00000000? Cудя по бинарю r_offset = 0x00000008
Привет! спасибо за статью!
Попытался более подробно вникнуть и возникло пару вопросов, скорее всего потому что я дилетант в асемблере.

0xffffffffc00000011 + 0xffffffffc10b3de8 = 0xffffffff810b3df9


0xffffffffc10b3de8 — а почему такой большой офсет? вроде бы просто должно быть c10b3de8 судя по дампу

Такого адрес в kallsyms нет, но есть 0xffffffff810badf9 — 0x79 = 0xffffffff810bad80

Вот тут не очень понятно откуда 0x79 взялось?

И самое главное непонятно почему в первый раз ф-ция отработала корректно? ведь при копировании ф-ции foo
...
	printk(KERN_INFO "foo=%lx new_foo=%lx\n",
		(unsigned long)foo, (unsigned long)new_foo);

	memcpy((void *)new_foo, (const void *)foo, PAGE_SIZE);

	ret = new_foo(1);
	printk(KERN_INFO "ret=%d\n", ret);
...

у нас опять же смещение в RIP = RIP + offset будет неправильное
1

Information

Rating
Does not participate
Registered
Activity