Избавится от printf , используя таблицу imports в IDA

Тема в разделе "WASM.BEGINNERS", создана пользователем 2Hard2Forget, 12 окт 2019.

Метки:
  1. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Покажи как поменял точку входа и подсистему. Подключал ли каки-либо заголовки?
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    этого недостаточно.
    Базовая точка старта это не просто точка старта, там куча обверток RТС и всякие секурити чеки.
    нужно изменить в code generation разделе свойств проекта, убрав Runtime Check и прочую лабудень
     
  3. 2Hard2Forget

    2Hard2Forget Member

    Публикаций:
    0
    Регистрация:
    27 авг 2018
    Сообщения:
    86
    Я выставил настройки вот так: upload_2019-10-14_12-35-7.png
    Она запустилась и сломалась:
    upload_2019-10-14_12-36-22.png
    --- Сообщение объединено, 14 окт 2019 ---
    Поменял точку входа вот так: upload_2019-10-14_12-39-12.png
    А потом еще и в консоль :
    upload_2019-10-14_12-42-47.png
    --- Сообщение объединено, 14 окт 2019 ---
    А ты смог запустить на VS ?
    --- Сообщение объединено, 14 окт 2019 ---
    Теперь я просто заменил __1 обратно на main и она всё равно крашится. upload_2019-10-14_17-29-26.png upload_2019-10-14_17-29-26.png
     
  4. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Кинь call-stack сюда и расположение модулей. Хочешь в лс пиши чтобы тут не засорять, потом просто отпишешь в чем трабла была тут.
     
  5. 2Hard2Forget

    2Hard2Forget Member

    Публикаций:
    0
    Регистрация:
    27 авг 2018
    Сообщения:
    86
    Я написал тебе в лс
     
  6. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    да, у меня 15ая студия - ничего не падает.
     
  7. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
    Да, тебе одному. Я юзаю 2008 студию и даже VC6 (98 год), и норм.
    Зачем самая новая? Глючная, ест 10гб оперативки, не поддерживает ХР, куча закладок от АНБ.
    --- Сообщение объединено, 14 окт 2019 ---
    2Hard2Forget, собирай каким-нибудь gcc или еще чем, в студии слишком много настроек по умолчанию, если (судя по твоим знаниям) на каждый еще будешь создавать вопрос, то не соберешь программу до нового года.
     
  8. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    Не работает скорее всего потому что у вас Windows 10
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    1. Включаем статическую линковку
    2. Выводим арифметическую разницу адресов интересуемых функций и main
    3. Теперь адрес нужной функции можно получить путем прибавления к main нужной константы
    4. PROFIT?
     
    2Hard2Forget нравится это.
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    кстати неплохая идея...
     
  11. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Каким образом?
     
  12. 2Hard2Forget

    2Hard2Forget Member

    Публикаций:
    0
    Регистрация:
    27 авг 2018
    Сообщения:
    86
    А как сделать статическую линковку ?
    --- Сообщение объединено, 15 окт 2019 ---
    upload_2019-10-15_21-40-57.png
    Всё равно тот же результат
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Код (Text):
    1.  
    2. #include <windows.h>
    3. #include <stdio.h>
    4.  
    5. void main(int argc, char** argv) {
    6.     printf("%d\n", (LPBYTE)main - (LPBYTE)printf);
    7. }
    8.  
    Код (Text):
    1.  
    2. > gcc -o test.exe -m32 -O3 -Os -static -s test.c
    3. > test.exe
    4. 48
    5.  
    но проблема в том, что это смещение не обязательно будет таким тогда, когда ты избавишься от символов (main и printf)...
     
  14. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    У тебя в коде используются символы алфавита. Проще в импорт загнать printf и там найти, в моем коде почти такой же прием юзается только вместо импорта из EXE используется из kernel32.