Жить надо проще часть 2: Жить надо легче, жить нужно проще, всё принимая, что есть на свете. И пусть наше сердце почаще хохочет, и пусть нам достанется, что оно хочет!!!

топ городов по уровню жизни, зарплатам, преступности и ценам на недвижимость

Ежегодно агентство «РИА Рейтинг» по данным Росстата, Минздрава, Минфина, Центробанка и других ведомств составляет рейтинг регионов по качеству жизни. Эксперты анализируют 70 показателей, начиная от доходов жителей и рынка труда и заканчивая безопасностью и климатом.

Мы посмотрели, как обстоят дела с зарплатами, преступностью, ценами на жилье и уровнем безработицы в регионах, которые заняли первые 15 мест этого рейтинга.

1 место

Москва

Средняя зарплата: 113 163 Р
Преступлений: 106 на 10 тысяч человек
Цена однушки: 10 900 000 Р
Уровень безработицы: 3,2%

2 место

Санкт-Петербург

Средняя зарплата: 80 747 Р
Преступлений: 74 на 10 тысяч человек
Цена однушки: 7 700 000 Р
Уровень безработицы: 2,5%

3 место

Московская область

Средняя зарплата: 69 878 Р
Преступлений: 185 на 10 тысяч человек
Цена однушки: 6 493 500 Р
Уровень безработицы: 3,2%

4 место

Татарстан

Средняя зарплата: 51 681 Р
Преступлений: 130 на 10 тысяч человек
Цена однушки: 5 617 920 Р
Уровень безработицы: 2,2%

5 место

Ханты-Мансийский округ

Средняя зарплата: 89 343 Р
Преступлений: 119 на 10 тысяч человек
Цена однушки: 4 634 500 Р
Уровень безработицы: 2,1%

6 место

Ямало-Ненецкий округ

Средняя зарплата: 121 688 Р
Преступлений: 130 на 10 тысяч человек
Цена однушки: 6 500 000 Р
Уровень безработицы: 1,7%

7 место

Нижегородская область

Средняя зарплата: 45 795 Р
Преступлений: 126 на 10 тысяч человек
Цена однушки: 4 500 000 Р
Уровень безработицы: 4,2%

8 место

Свердловская область

Средняя зарплата: 55 620 Р
Преступлений: 121 на 10 тысяч человек
Цена однушки: 4 332 000 Р
Уровень безработицы: 3,4%

9 место

Самарская область

Средняя зарплата: 48 490 Р
Преступлений: 148 на 10 тысяч человек
Цена однушки: 3 550 000 Р
Уровень безработицы: 2,7%

10 место

Тюменская область

Средняя зарплата: 60 342 Р
Преступлений: 147 на 10 тысяч человек
Цена однушки: 4 250 000 Р
Уровень безработицы: 3,7%

11 место

Краснодарский край

Средняя зарплата: 48 351 Р
Преступлений: 147 на 10 тысяч человек
Цена однушки: 4 795 000 Р
Уровень безработицы: 3,2%

12 место

Белгородская область

Средняя зарплата: 47 737 Р
Преступлений: 95 на 10 тысяч человек
Цена однушки: 3 650 000 Р
Уровень безработицы: 3,6%

13 место

Башкортостан

Средняя зарплата: 48 456 Р
Преступлений: 124 на 10 тысяч человек
Цена однушки: 3 820 000 Р
Уровень безработицы: 2,8%

14 место

Воронежская область

Средняя зарплата: 46 644 Р
Преступлений: 132 на 10 тысяч человек
Цена однушки: 3 400 000 Р
Уровень безработицы: 3,4%

15 место

Ростовская область

Средняя зарплата: 46 126 Р
Преступлений: 136 на 10 тысяч человек
Цена однушки: 3 922 000 Р
Уровень безработицы: 3,5%

Как жить в России

Неважно, в каком регионе вы живете, есть навыки, которые пригодятся везде: планировать семейный бюджет, не переплачивать налоги, разбираться в квитанциях по коммуналке, снимать квартиру, находить хорошую работу. Обо всем этом рассказываем в нашей еженедельной рассылке

Полный рейтинг регионов по качеству жизни можно посмотреть на сайте «РИА Рейтинга». Данные о средней зарплате в 2022 году и безработице мы взяли на сайте Росстата. Уровень преступности — в ежегодном отчете МВД «Состояние преступности в России» за 2022 год.

Цены на жилье — расчеты Т—Ж на основе данных «Авито» для столиц соответствующих субъектов. Все показатели актуальны на момент публикации.

Если хотите сменить регион, посмотрите, сколько стоит переехать:

1. Из Ижевска в Москву.
2. С Дальнего Востока на юг.
3. Из Подмосковья в деревню.

Куда переехать на ПМЖ: лучшие страны для иммиграции

По каким критериям выбирают страну для иммиграции

Стоимость проживания. Ориентировочно ее можно оценить по данным, которые предоставляют местные жители, — например, на портале Numbeo. Расчеты ежегодного Индекса стоимости жизни от Numbeo основаны на стоимости аренды и покупки недвижимости, коммунальные услуги, продукты, образование.

В Швейцарии, Норвегии и Исландии в 2022 году жить дороже, чем в других европейских странах. Аренда апартаментов с тремя спальнями в Швейцарии стоит в среднем 3000 € в месяц, а покупка — от 8000 до 11 000 € за м². Затраты на покупку и аренду жилья в Румынии в пять раз ниже.

Как изменились потребительские цены в Европе за последние 10 лет

Бермудские острова — самое дорогое место для жизни среди стран Америки. Арендовать там апартаменты с двумя спальнями в среднем стоит 5500 €, купить — 20 000 € за м². Затраты на проживание в Канаде или США в два раза ниже, чем на Бермудах. 

Израиль, Сингапур и Гонконг — самые дорогие страны Ближнего Востока и Азии. В Израиле аренда апартаментов с тремя спальнями в центральной части городов будет стоить в среднем 2000 € в месяц.

Как попасть в США и Евросоюз без виз с паспортом России?

Никак. Зато с ВНЖ и вторым гражданством — без виз и проблем. Подпишитесь на рассылку с проверенными новостями отрасли.

Качество жизни. По отчету World Happiness Report можно судить о том, насколько люди в разных странах довольны качеством своей жизни. Отчет ежегодно составляет ООН. В исследовании учитывают показатель ВВП на душу населения, продолжительность жизни, уровень свободы, восприятие коррупции и социальной поддержки.

Все скандинавские страны вошли в первую десятку рейтинга, а Финляндия занимает первое место пятый год подряд. Популярные для переезда страны — Германия, Канада и Португалия — заняли четырнадцатое, пятнадцатое и пятьдесят шестое места соответственно.

Страны, в которых люди довольны своей жизнью в 2022 году

Позиция в рейтингеСтрана
10Новая Зеландия
9Израиль
8Норвегия
7Швеция
6Люксембург
5Нидерланды
4Швейцария
3Исландия
2Дания
1Финляндия

Уровень безопасности в стране для переезда можно оценить по рейтингу Global Peace Index. Индекс рассчитывается на основе 23 метрик в трех областях: уровень общественной безопасности, масштаб внутренних и вовлеченность во внешние конфликты, степень милитаризации.

Исландия признана самой мирной и безопасной страной, она находится на первом месте 14 лет подряд. Исследователи отмечают, что в Исландии низкий уровень преступности, надежная система социального обеспечения и справедливая оплата труда, из-за чего напряженность между экономическими классами сведена к нулю.

Рейтинг самых безопасных стран

Позиция в рейтингеСтрана
10Канада
9Чехия
8Ирландия
7Швейцария
6Австрия
5Словения
4Португалия
3Дания
2Новая Зеландия
1Исландия

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

Международное сообщество InterNations составило рейтинг стран, которые стали лучшими для иммигрантов и экспатов:

  • Португалия;
  • Тайвань;
  • Мексика;
  • Камбоджа;
  • Бахрейн;
  • Коста-Рика;
  • Оман;
  • Колумбия;
  • Вьетнам;
  • Канада.

Наименее дружелюбными странами по отношению к экспатам и иммигрантам InterNation называют Австрию, Швейцарию и Кувейт.

В каких странах проще получить вид на жительство

В развитых странах чаще всего действует жесткая миграционная политика. Вид на жительство во Франции, Швеции или Новой Зеландии получить сложнее, чем в Латвии или Болгарии. Условия, на которых можно получить ВНЖ в стране, опубликованы на сайтах консульств и посольств.

В Литве, Латвии и Германии для иностранцев, которые претендуют на ВНЖ, предусмотрено от двенадцати оснований, по которым они могут подать заявку на статус. Это больше, чем в других странах Европы. Для сравнения: в Бельгии, Нидерландах и Словении таких оснований семь или меньше.

Руководство: как получить ВНЖ в 40 европейских странах

Вид на жительство чаще всего получают через трудоустройство, учебу, брак или воссоединение семьи. На статус ВНЖ также могут претендовать высококвалифицированные специалисты, спортсмены, ученые и деятели искусств.

ВНЖ для иностранцев с удаленной работой, или цифровых кочевников, можно получить во многих странах. Страховая компания Insure My Trip включает Норвегию, Мексику, Германию, Португалию и Исландию в пятерку лучших государств для удаленной работы. Чтобы получить вид на жительство как цифровой кочевник, необходимо предоставить контракт с компанией-работодателем, зарегистрированной вне страны ВНЖ, и подтвердить доход не ниже определенного уровня, в среднем от 2000 € в месяц.

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

Получить карту ПМЖ сразу не получится, для начала необходимо прожить в стране не менее пяти лет в статусе ВНЖ. Также иностранцу потребуется подтвердить знание языка, культуры, интеграцию в местное сообщество.

Вид на жительство за инвестиции можно получить во многих европейских странах, самыми популярными считаются программы Мальты, Кипра, Португалии, Испании и Греции. Две страны из списка — Мальта и Кипр — предоставляют возможность получить статус ПМЖ сразу на всю жизнь.

Топ-5 стран для иммиграции. Рассказываем о странах, в которых действуют инвестиционные программы ВНЖ и гражданства

Как получить ВНЖ и ПМЖ за инвестиции

Иностранцы вкладывают деньгу в экономику страны и взамен получают ВНЖ или ПМЖ в Европе. В зависимости от условий программы инвестор может купить или арендовать недвижимость, открыть депозит в банке, приобрести ценные бумаги местных компаний и инвестиционных фондов.

Условия инвестиционных программ в странах Европы

ПрограммаРасходы инвестораСрок получения Срок действияОбязательное проживание в стране
ВНЖ на МальтеОт 30 000 €3—4 месяца1 годНе требуется. Важно не проводить в любой другой стране более 183 дней в году
ВНЖ в ПортугалииОт 250 000 €8—10 месяцев2 года7 дней в году
ВНЖ в ГрецииОт 250 000 €От 6 месяцев5 летНе требуется
ПМЖ на МальтеОт 150 000 €6—8 месяцевБессрочноНе требуется
ПМЖ на КипреОт 300 000 €От 3 месяцевБессрочноРаз в два года приезжать на остров

ВНЖ в странах Европы также получают финансово независимые лица. Это состоятельные иностранцы со стабильным доходом, которые не планируют работать в стране. Такие программы действуют в Австрии, Швейцарии и Андорре.

В Австрии расходы на получение статуса составят от 100 000 €, в Андорре — от 400 000 €, в Швейцарии — от 450 000 ₣ в год. Карту ВНЖ финансово независимые лица продлевают каждый год. 

Возможности гражданства карибских стран или Вануату оценят инвесторы, которые хотят стать космополитами и получить свободу передвижения по миру. Инвесторам открывается безвизовый въезд в более чем 135 стран. В странах Шенгенского соглашения при этом можно проводить 90 из 180 дней. Затраты на получения паспорта составят от 130 000 $.

Часто задаваемые вопросы

Что дает статус ПМЖ?

Постоянный вид на жительство (ПМЖ) — это статус, который позволяет иностранцу проживать на территории страны без ограничений по времени.

Владелец статуса ПМЖ получает права, которые имеют граждане страны, но он не может голосовать, участвовать в выборах и занимать государственные должности.

С картой ПМЖ в стране Евросоюза иностранец имеет право:

  • жить и работать на территории страны;
  • посещать без виз другие страны Шенгенского соглашения и жить там;
  • открывать счета в европейских банках;
  • получить вид на жительство для членов своей семьи;
  • получить гражданство по натурализации спустя несколько лет.

Статус ПМЖ нельзя получить сразу после переезда: сначала иностранцы получают временный вид на жительство, или ВНЖ, а через несколько лет — ПМЖ. Исключение составляют инвестиционные программы Мальты и Кипра, участвуя в которых иностранец за инвестиции в недвижимость или экономику страны сразу получает ПМЖ.

Как проще всего получить постоянный вид на жительство?

Большинство иностранцев получают статус ПМЖ через натурализацию — то есть основанием для получения статуса становится время, которое иностранец прожил в стране. В среднем заявку на статус ПМЖ можно подать через 5 лет в статусе ВНЖ.

Страны, в которых действуют инвестиционные программы, дают возможность иностранцам получить статус ПМЖ в более короткий срок. Например, инвесторы могут арендовать или купить недвижимость, уплатить необходимые сборы и получить ПМЖ на Мальте через 6—8 месяцев.

Как выбрать страну для ПМЖ?

Нет универсального чек-листа, по которому можно сравнить страны для переезда на ПМЖ. Одному человеку важно, насколько легко найти работу, другого заинтересуют условия для обучения детей, третьего — ставки налогов для бизнеса.

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

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

В каких странах есть программы вида на жительство за инвестиции?

Программы вида на жительство за инвестиции действуют в нескольких странах Европы. 

На Мальте действуют две программы — ВНЖ и ПМЖ за инвестиции. В них могут принять участие инвесторы, которые арендуют или покупают недвижимость в стране и уплачивают административный сбор.

Программа ВНЖ на Мальте за инвестиции ориентирована на предпринимателей. Инвестор может воспользоваться налоговой льготой 一 платить налог в размере 15% на доход, полученный за границей и переведенный на Мальту. Минимальная сумма налога в год составляет 15 000 € за семью.

ПМЖ на Мальте за инвестиции получают инвесторы, которые помимо покупки или аренды недвижимости в стране подтвердят наличие капитала в размере от 500 000 €.

Программа ВНЖ в Португалии предлагает иностранцам семь инвестиционных опций, наиболее популярные из них — покупка жилой или коммерческой недвижимости на сумму от 280 000 €. 

ВНЖ в Греции за инвестиции получают иностранцы, которые покупают жилую или коммерческую недвижимость стоимостью от 250 000 €. Затраты по инвестиционной программе в Греции — самые низкие среди европейских стран, при этом иностранцу не нужно жить в стране.

Какие страны считаются лучшими для эмиграции?

Пятьдесят девять стран входят в список лучших мест для жизни экспатов. Рейтинг составляет международное агентство InterNations по опросам иностранцев, которые живут и работают за границей. Тайвань, Мексика, Коста-Рика, Малайзия и Португалия заняли первые пять мест. 

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

ВНЖ в Португалии можно получить за инвестиции в экономику страны, такой ВНЖ также называют золотой визой в Португалию. Чтобы получить статус, инвесторы покупают недвижимость на сумму от 280 000 €, паи инвестиционных фондов или открывают бизнес. Инвесторы получают статус ВНЖ в срок от 8 до 10 месяцев.

Можно ли получить вид на жительство за инвестиции вместе с семьей?

Инвестор, который участвует в инвестиционной программе ВНЖ или гражданства, может присоединить к заявке членов семьи. Любая программа разрешает участие супруги и несовершеннолетних детей. Условия присоединения других членов семьи отличаются.

Программа ВНЖ на Мальте за инвестиции кроме супруга или супруги, а также детей до 18 лет позволяет присоединить детей до 25 лет, братьев, сестер, родителей, бабушек и дедушек инвестора или супруги инвестора. Главное условие — члены семьи должны финансово зависеть от инвестора.

В программе ПМЖ на Мальте вместе с инвестором могут участвовать дети любого возраста, если не состоят в браке, родители, бабушки и дедушки инвестора или супруги. Братьев и сестер включить в заявку нельзя.

ВНЖ в Португалии вместе с основным заявителем могут получить дети до 26 лет, если живут с инвестором или учатся в вузе, родители инвестора или супруги до 65 лет.

ВНЖ в Греции наряду с инвестором могут получить его супруга или супруг, дети до 21 года и родители любого возраста, если они полностью финансово зависят от инвестора.

простых процедур, которые изменят вашу жизнь, часть 2

Доктор Молли Кейси

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

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

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

Мы рассмотрели элементы общения, воды и дыхания в части 1. Мы завершили ее последними тремя основополагающими элементами: пищей, движением и сном.

Эти простые упражнения помогут изменить вашу жизнь.

Корм ​​

Кормите себя намеренно, чисто и в достаточном количестве. Что это значит? Ваша еда — это ваше топливо; ваше тело может работать настолько хорошо, насколько хорошо вы в него вкладываете топливо. Чаще всего люди действуют на автопилоте. Станьте преднамеренным в том, что вы и как вы едите. Не ешьте в машине, разговаривая по телефону или смотря телевизор. Выделите время, чтобы поесть в тишине с другими или без них в спокойном и приятном месте. Это обеспечивает телу спокойную и стабильную среду, чтобы делать с пищей то, для чего оно предназначено — переваривать и использовать ее в качестве топлива.

Чистое питание означает выбор продуктов, максимально приближенных к их естественному состоянию — не обработанных и не упакованных. Ешьте как можно больше продуктов, происходящих прямо из земли, с минимальным количеством искусственных химикатов или модификаций. Когда вы едите мясо и молочные продукты, отдавайте предпочтение продуктам с пометкой «100 % травяного откорма без дополнительных гормонов». Избегайте мяса и молочных продуктов, подкрепленных гормонами, или искусственных уловок, чтобы откормить этих плохих мальчиков, чтобы они росли быстрее.

Убедитесь, что вы едите достаточно. Распространенной ошибкой является слишком редкое употребление в пищу или недостаточное количество правильных видов пищи, например белков или овощей. Это возвращается к тому, чтобы приложить сознательные усилия к осознанию своих пищевых привычек и распорядка дня. Для некоторых идеальным будет двухразовое питание; для других будет работать четыре небольших приема пищи. Дело в том, что вы должны обратить внимание на то, чтобы разобраться и накормить свой организм в достаточном количестве как в порциях, так и в видах пищи. Если вес является проблемой, и вы хотите похудеть, поймите, что вы не можете перетренироваться от плохой диеты; независимо от того, сколько вы тренируетесь, если ваша диета беспорядочна, вес никуда не денется. Так что обращайтесь к еде.

Переместить

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

Мне нравится думать, что на каждый час сидения человек должен потратить 10-15 минут движения. Не волнуйтесь; это не означает, что все движения должны происходить в спортзале. Это движения вверх, вниз, повседневные движения, хотя в идеале 60 минут должны быть посвящены активности с более высокой частотой сердечных сокращений, будь то быстрая ходьба, выпады дома, поднятие тяжестей или интервальные тренировки. Чем меньше тело двигается, тем быстрее изнашиваются и атрофируются все мышцы, клетки и системы. Это означает, что смерть наступает быстрее — без шуток. Ежедневно двигайте телом. Разработайте план и придерживайтесь его.

Сон

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

Рутина — Постоянство и повторение в рутине создадут полезные привычки. Ложитесь спать и просыпайтесь в одно и то же время, каждый день, каждую неделю, каждый месяц года. Да, будут времена, когда это будет почти неизбежно, но такие времена должны быть исключением. Выберите время, которое соответствует вашему образу жизни. Например, не выбирайте 20:30. ложиться спать, если вы дома ежедневно в 8 часов вечера, и идти в офис в полдень. Быть реалистичным.

За час до сна — Нет экранного времени, которое включает в себя телевизоры, телефоны, планшеты или любые другие новые устройства, разработанные технологией. Сохраняйте спокойствие за час до сна и, если можете, выделите немного времени для себя и своих близких. Эта радость, скорее всего, принесет удовлетворение, успокоит и снизит стресс. Суть в том, что не набирайте обороты за час до сна.

Нет света — Это означает затемнение и отсутствие насыщенных цветов часов. Вы буквально хотите, чтобы комната была настолько темной, насколько это возможно, независимо от того, работаете ли вы в первую или в третью смену. Это помогает организму перейти на более глубокие уровни сна и повысить качество отдыха. Это обязательно.

Резюме

Постоянство в основах приведет вас к оптимальному здоровью быстрее, чем вы думаете. Если вы парализованы до бездействия из-за всей информации, которая циркулирует в Интернете, на телевидении, в книгах, журналах, рекламных роликах, рекламных роликах… помните основы.

Держите линии связи чистыми как внутри вашего тела с помощью хиропрактики, так и вне вашего тела, создавая высококачественные личные и профессиональные отношения. Регулярно поливайте себя водой, так как каждая клетка тела требует увлажнения. Дышите глубоко, правильно и часто, чтобы улучшить работу клеток и тела и уменьшить стресс. Кормите себя осознанно, здоровой пищей в нужном количестве. Двигайтесь ежедневно, вероятно, в количестве, которое вы могли бы считать «много». Создайте распорядок сна, который включает в себя один час тишины заранее, который соответствует вашей жизни, последователен по времени и находится в комнате без света.

В объединенной хиропрактике работают врачи, которые сосредоточены на улучшении качества вашей повседневной жизни. Они готовы и желают помочь вам на пути к оптимальному здоровью.


Связанный артикул

 

  • Часть 1. Улучшение здоровья: простые процедуры, которые изменят вашу жизнь, часть 1

 


Информация, включая, помимо прочего, текст, графику, изображения и другие материалы, содержащиеся на этой странице, предназначена только для информационных целей. Цель этого поста — способствовать широкому пониманию и знанию потребителями различных тем, связанных со здоровьем, включая, помимо прочего, преимущества хиропрактики, физических упражнений и питания. Он не предназначен для предоставления или замены профессиональной медицинской консультации, диагностики или лечения. Всегда обращайтесь за советом к своему мануальному терапевту, врачу или другому квалифицированному медицинскому работнику с любыми вопросами, которые могут возникнуть у вас относительно состояния здоровья или лечения, а также перед началом нового режима лечения, и никогда не пренебрегайте профессиональным медицинским советом и не откладывайте его обращение по какой-либо причине. вы прочитали на этой странице.

Использование IDAPython для облегчения вашей жизни: часть 2

Продолжая нашу тему использования IDAPython для облегчения вашей жизни в качестве реверс-инженера, я собираюсь решить очень распространенную проблему: шелл-код и вредоносное ПО, использующее алгоритм хеширования для обфускации загруженные функции и библиотеки. Этот метод широко используется, и аналитики часто с ним сталкиваются. Используя IDAPython, мы легко решим эту сложную проблему.

Фон

Обратные инженеры чаще всего сталкиваются с запутанными именами функций в шелл-коде. В целом процесс довольно простой. Сначала код загружает библиотеку kernel32.dll во время выполнения. Затем он продолжает использовать этот загруженный образ для идентификации и сохранения функции LoadLibraryA, которая используется для загрузки дополнительных библиотек и функций. Этот конкретный метод использует алгоритм хеширования, который используется для идентификации функции. Алгоритм хеширования обычно представляет собой CRC32, однако распространены и другие варианты, такие как ROR13.

При обратном проектировании части вредоносного ПО я столкнулся со следующей техникой:

который используется алгоритмом CRC32.

Рисунок 2 Алгоритм CRC32 идентифицирован

Теперь, когда алгоритм и функция идентифицированы, мы можем посмотреть на число перекрестных ссылок, чтобы определить, сколько раз вызывалась эта функция. Всего эта функция называется 190 раз в этом конкретном примере. Очевидно, что расшифровывать все эти хэши и переименовывать их вручную в файле IDA Pro нам не хочется. Таким образом, мы можем использовать IDAPython, чтобы облегчить себе жизнь.

Сценарии в IDAPython

В первом шаге вообще не используется IDAPython, но используется Python. Чтобы определить, какие хэши соответствуют каким функциям, нам нужно создать список наиболее распространенных хэшей функций в операционной системе Microsoft Windows. Для этого мы можем просто взять список общих библиотек, используемых ОС Windows, и перебрать их имена функций.

защита get_functions (dll_path): pe = pefile.PE(dll_path) if ((not hasattr(pe, ‘DIRECTORY_ENTRY_EXPORT’)) или (pe.DIRECTORY_ENTRY_EXPORT равно None)): print «[*] Нет экспорта для %s» % dll_path возвращаться [] еще: имя_экспоната = [] для exp в pe.DIRECTORY_ENTRY_EXPORT.symbols: если exp.name: expname.append(exp.name) вернуть имя_выражения

1

2

3

4

5

6

7

8

9

10

11

def get_functions(dll_path):

  pe = pefile. PE(dll_path)

  if ((not hasattr(pe, ‘DIRECTORY_ENTRY_EXPORT’)) или (pe.DIRECTORY_ENTRY_EXPORT is None)):

» *   Нет экспорта для % s » % dll_path

return []

else:

expname = []

для exp in pe.directory_entry_export.symbols:

, если exp.name:

        expname.append(exp.name)

    return expname

Затем мы можем взять этот список имен функций и применить к нему алгоритм хеширования CRC32.

определение calc_crc32 (строка): return int(binascii.crc32(string) & 0xFFFFFFFF)

def calc_crc32(string):

  return int(binascii.crc32(string) & 0xFFFFFFFF)

Наконец, мы записываем результаты в файл в формате JSON, который я назвал «output.json». Этот файл данных JSON содержит большой словарь в следующем формате:

ХЭШ => ИМЯ

ХЭШ => ИМЯ

Полную копию этого скрипта можно найти здесь.

Как только этот файл будет сгенерирован, мы можем вернуться в IDA, где будет выполняться оставшаяся часть нашего сценария. Первым шагом нашего скрипта будет чтение данных JSON из ранее созданного файла «output.json». К сожалению, объекты JSON не поддерживают использование целых чисел в качестве значения ключа, поэтому после загрузки этих данных мы изменяем ключи для представления целых чисел вместо строк.

для k, v в json_data.iteritems(): json_data[int(k)] = json_data.pop(k)

для k, v в json_data.iteritems():

  json_data[int(k)] = json_data.pop(k)

После правильной загрузки этих данных мы собираемся создать новое перечисление, в котором будет храниться сопоставление хэша с именем функции. (Для получения дополнительной информации о перечислениях и о том, как они работают, я рекомендую вам прочитать это руководство.)

Используя перечисления, мы можем сопоставить целочисленное значение, такое как хэш CRC32, со строковым представлением, таким как имя функции. Чтобы создать новое перечисление в IDA, мы используем функцию AddEnum(). Чтобы сделать скрипт более универсальным, мы сначала проверяем, существует ли перечисление, используя функцию GetEnum().

перечисление = GetEnum(«crc32_functions») если перечисление == 0xFFFFFFFF: перечисление = AddEnum(0, «crc32_functions», idaapi.hexflag())

перечисление = GetEnum(«crc32_functions»)

если перечисление == 0xFFFFFFFF:

  перечисление = AddEnum(0, «crc32_functions», idaapi.hexflag())

Это перечисление будет изменено позже. Следующим шагом будет определение того, какие перекрестные ссылки есть у нашей функции, отвечающей за преобразование хеширования в функцию. Это должно показаться знакомым тем, кто читал часть 1. Глядя на структуру того, как функции передаются в функцию, мы видим, что хэш CRC32 предоставляется в качестве второго аргумента. 9Рис. 3. Аргументы, передаваемые функции load_function После обнаружения мы сверяем хэш CRC32 с нашими ранее загруженными данными JSON из output. json, чтобы убедиться, что с этим значением связано имя функции.

для x в XrefsTo(load_function_address, flags=0): текущий_адрес = x.frm addr_minus_20 = текущий_адрес-20 push_count = 0 в то время как текущий_адрес >= адрес_минус_20: текущий_адрес = предыдущий заголовок (текущий_адрес) если GetMnem(current_address) == «push»: push_count += 1 данные = GetOperandValue (текущий_адрес, 0) если push_count == 2: если данные в json_data: имя = json_data[данные]

1

2

3

4

5

6

7

8

10

11 0005

12

для x in xrefsto (load_function_address, flags = 0):

current_address = x.frm

addr_minus_20 = current_address-20

push_count = 0

, а Current_Address> = Addr_minus_20:

.0005

, если getmnem (current_address) == «push»:

push_count += 1

data = getOperandValue (current_address, 0)

If push_count == 2:

, если данные в json_data:

name = json_data данные]

На этом этапе мы добавляем этот хэш CRC32 и имя функции к нашему ранее созданному перечислению, используя функцию AddConstEx().

AddConstEx(перечисление, str(имя), int(данные), -1)

AddConstEx(перечисление, str(имя), int(данные), -1)

После добавления этих данных в перечисление мы можем преобразовать наш хеш CRC32 в его имя перечисления. Следующие две функции могут использоваться для получения первого экземпляра числа в его перечисление, а также для преобразования данных по определенному адресу в это перечисление.

защита get_enum (константа): all_enums = GetEnumQty() для i в диапазоне (0, all_enums): enum_id = GetnEnum(i) enum_constant = GetFirstConst (enum_id, -1) имя = GetConstName(GetConstEx(enum_id, enum_constant, 0, -1)) если int(enum_constant) == константа: вернуть [имя, enum_id] пока верно: enum_constant = GetNextConst (enum_id, enum_constant, -1) имя = GetConstName(GetConstEx(enum_id, enum_constant, 0, -1)) если enum_constant == 0xFFFFFFFF: перерыв если int(enum_constant) == константа: вернуть [имя, enum_id] возврат Нет def convert_offset_to_enum (адрес): константа = GetOperandValue (адрес, 0) enum_data = get_enum (константа) если enum_data: имя, enum_id = enum_data OpEnumEx (адрес, 0, enum_id, 0) вернуть Истина еще: вернуть Ложь

1

2

3

4

5

6

7

8

10

110005

12

13

14

9000 15

1000 9000 9000 9000 9000 9000 210005 9000

9000 9000 9000 9000 9000 9000 9000 9000 21000 9000 9000

9000 9000 9000 210009 9000

18

19

20

21

22

23

24

def get_enum(константа):

  all_enums = GetEnumQty()

для i в диапазоне (0, all_enums):

enum_id = getNenum (i)

enum_constant = getFirstConst (enum_id, -1)

name = getConstname (getConstex (enum_id, enum_constant, 0, -1)

5955955595595595595595595595959595959955995599595959959595959959959959

, если int (enum_constant) == Константа: return [name, enum_id]

, в то время как true:

enum_constant = getNextConst (enum_id, enum_constant, -1)

name = getConstnam ))

      if enum_constant == 0xFFFFFFFF:

Break

IF int (enum_constant) == Константа: return [name, enum_id]

return none

def convert_offset_to_enum (addr):

constant = getOperandValue (Addr, 0)

enum_data = getOperandValue (Addr, 0)

enum_data = getOperandValue (AddR, 0)

enum_data = getOperandValue Constant)

Если enum_data:

Имя, enum_id = enum_data

Openumex (addr, 0, enum_id, 0)

Вернуть True

Else:

Верните False

После того, как это преобразование перечисления выполнено, мы собираемся переименовать DWORD, который содержит адрес обнаруженной функции после ее загрузки. Рис. 4. Сохранение адреса функции в DWORD после ее загрузки Когда это будет обнаружено, мы переименуем этот DWORD в правильное имя функции. Чтобы избежать конфликтов имен, мы будем добавлять «d_» к имени.

адрес = текущий_адрес в то время как адрес <= address_plus_30: адрес = NextHead(адрес) если GetMnem(адрес) == "mov": если «dword» в GetOpnd(адрес, 0) и «eax» в GetOpnd(адрес, 1): значение_операнда = GetOperandValue (адрес, 0) MakeName(operand_value, str("d_"+name))

1

2

3

4

5

6

7

адрес = текущий_адрес

while address <= address_plus_30:

  address = NextHead(address)

  if GetMnem(address) == «mov»:

    if ‘dword’ в GetOpnd(address, 0) и ‘eax’ в GetOpnd(address) , 1):

      operand_value = GetOperandValue(адрес, 0)

     MakeName(operand_value, str(«d_»+name))

Собрав все это вместе, мы можем обновить предыдущий нечитаемый дизассемблированный код до чего-то гораздо более читабельного.

Рисунок 5 Изменения после запуска сценария

Теперь, когда мы смотрим на список DWORD, используемых для хранения этой информации, мы получаем список реальных имен функций. Затем эти данные можно использовать для проведения дополнительного статического анализа рассматриваемого вредоносного ПО.

Рис. 6. Именование DWORD после запуска скрипта

Полный скрипт IDAPython можно найти здесь.

Заключение

Мы снова смогли взять на себя довольно сложную задачу по предоставлению 190 Хэш-представления имен функций CRC32 и извлечение значимых данных с использованием IDAPython. Перечисления могут быть мощным механизмом при столкновении с такой проблемой. Создание и изменение перечислений, а также присвоение перечислений переменным можно легко выполнить с помощью IDAPython, что сэкономит нам драгоценное время. Кроме того, эти перечисления можно экспортировать и импортировать в другие проекты IDA на тот случай, если аналитик обнаружит ту же проблему при обратном проектировании другого образца.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *