Разница между основной и __libc_start_main - PullRequest
2 голосов
/ 08 июня 2019

Я начинаю заниматься реверс-инжинирингом, использую IDA Pro и работаю над разборкой двоичного файла.

Я пытаюсь найти адрес памяти для функции main программы на C, с которой я работаю.

Однако я вижу, что в IDA есть функция для: main и для __libc_start_main

Я прочитал этот пост , но я боюсь, что все еще не понимаю. Может ли кто-нибудь помочь мне понять разницу между ними, и какая из них какая?

Спасибо!

1 Ответ

2 голосов
/ 08 июня 2019

__libc_start_main вызывается первым и вызывает main. Первый является частью платформы и выполняет некоторую инициализацию, о которой большинство людей даже не подозревают, например, при подготовке системы потоков. Последний является точкой входа в пользовательскую программу и содержит «обычный» код.

...