Lcc Win32 - как избавиться от хлама и установить свою точку входа

Тема в разделе "LANGS.C", создана пользователем alexey_k, 31 июл 2008.

  1. alexey_k

    alexey_k New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    24
    Доброго времени суток!
    Вопрос в следующем. Вот код моего простейшего хелловорда:

    Код (Text):
    1. #include <windows.h>
    2.  
    3. void main()
    4. {
    5.     MessageBox(0, "hello world", "(_._)", MB_OK|MB_ICONINFORMATION);
    6.     ExitProcess(0);
    7. }
    Размер exe получается нормальный - 3.1 кб, но вот пихает lcc туда много лишнего:

    Код (Text):
    1. mov     eax, large fs:0
    2. push    ebp
    3. mov     ebp, esp
    4. push    0FFFFFFFFh
    5. push    offset unk_40201C
    6. push    offset sub_40109A
    7. push    eax
    8. mov     large fs:0, esp
    9. sub     esp, 10h
    10. push    ebx
    11. push    esi
    12. push    edi
    13. mov     [ebp+var_18], esp
    14. push    eax
    15. fnstcw  [esp+30h+var_30]
    16. or      [esp+30h+var_30], 300h
    17. fldcw   [esp+30h+var_30]
    18. add     esp, 4
    19. push    0
    20. push    0
    21. push    offset dword_402028
    22. push    offset dword_402024
    23. push    offset dword_402020
    24. call    __GetMainArgs
    25. push    dword_402028
    26. push    dword_402024
    27. push    dword_402020
    28. mov     dword_402014, esp
    29. call    sub_40129C ; <<-- и только тут будет вызвана ф-ия main
    30. add     esp, 18h
    31. xor     ecx, ecx
    32. mov     [ebp+var_4], ecx
    33. push    eax             ; int
    34. call    exit
    Плюс ко всему в импорте лишнего напихано :dntknw:

    в VC подобные траблы просто решаются (изменяем точку входа + отключаем стандартную либу), а вот как подобное сотворить с LCC?

    ЗЫ
    Код пишется в среде RadASM, lcc 3.2

    Зарание спасибо.
     
  2. alexey_k

    alexey_k New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    24
    проблема решена. см. форум cracklab (http://cracklab.ru/f/index.php?action=vthread&forum=6&topic=12442)