MessageBox without import

Тема в разделе "WASM.X64", создана пользователем Mikl___, 5 фев 2025.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.126
    Код (ASM):
    1. ; GUI #
    2. include win64a.inc
    3. .code
    4. WinMain proc
    5. local Message:UNICODE_STRING
    6. local Result:qword
    7.        mov rax,qword ptr gs:[60h];Получаем адрес PEB
    8.        mov rax,[rax+18h];Смещаемся к структуре PEB_LDR_DATA
    9.        mov rax,[rax+20h];Смещаемся к полю PEB_LDR_DATA.InMemoryOrderModuleList
    10.        mov rax,[rax]
    11.        mov rbx,[rax+20h];Базовый адрес ntdll.dll
    12.        cmp word ptr[rbx].IMAGE_DOS_HEADER.e_magic,IMAGE_DOS_SIGNATURE
    13.        jne exit_
    14.        mov r9d,[rbx].IMAGE_DOS_HEADER.e_lfanew;смещение до PE-заголовка
    15.        cmp word ptr[rbx+r9],IMAGE_NT_SIGNATURE;
    16.        jne exit_
    17. ;18h to optional header + 70h to data directories
    18.        mov r9d,dword ptr[rbx+r9+18h].IMAGE_OPTIONAL_HEADER64.DataDirectory;смещение до секции экспорта
    19. ;Пеpейти к таблице экспоpта и получить количество имен (NumberOfNames)
    20.        add r9,rbx;переходим в таблицу экспорта
    21.        mov r14d,[r9].IMAGE_EXPORT_DIRECTORY.NumberOfNames;[r9+18h]
    22.        mov r13d,[r9].IMAGE_EXPORT_DIRECTORY.AddressOfNames;[r9+20h]
    23.        add r13,rbx
    24.        mov edx,[r9].IMAGE_EXPORT_DIRECTORY.AddressOfFunctions;[r9+1Ch]
    25.        lea r12,[rbx+rdx+4];tableOfAddressOfFunctions
    26. ;---------------------------------------------------
    27.        invoke func,sizeof aLdrLoadDll,&aLdrLoadDll      
    28.        mov Message.woLength,14h
    29.        mov Message.MaximumLength,16h
    30.        movr qword ptr Message.Buffer,aUser32_
    31.        lea r8,Message
    32.        mov ecx,1
    33.        lea edx,Result
    34.        mov r9,rdx
    35.        call rax;LdrLoadDll_
    36. ;---------------------------------------
    37.        lea   r15,aMessageBoxA
    38.        mov Message.woLength,12
    39.        mov Message.MaximumLength,13
    40.        mov Message.Buffer,r15;&aMessageBoxA
    41. ;----------------------------------------------------
    42.        invoke func,sizeof aLdrGetProcedureAddress,&aLdrGetProcedureAddress
    43.        xor r8,r8
    44.        lea rdx,Message
    45.        mov [rsp+28h],r15;&aMessageBoxA
    46.        lea r9,Result
    47.        mov rcx,[r9]
    48.        and dword ptr[rsp+20h],0
    49.        call rax;LdrGetProcedureAddress_
    50. ;-----------------------------------
    51.        mov r9d,MB_OK
    52.        lea r8d,aTitle
    53.        mov edx,offset aMessage
    54.        xor ecx,ecx
    55.        call Result
    56. exit_: invoke RtlExitUserProcess,NULL
    57. WinMain endp
    58. func proc sizeof1:dword,NameProc:dword
    59.        mov sizeof1,ecx
    60.        mov NameProc,edx
    61.        xor edx,edx
    62.        mov r8,r13
    63. @@:    mov edi,[r8]
    64.        add rdi,rbx
    65.        mov ecx,sizeof1;sizeof aLdrGetProcedureAddress
    66.        mov esi,NameProc;offset aLdrGetProcedureAddress
    67.        repe cmpsb
    68.        or ecx,ecx
    69.        je @f
    70.        add r8,4
    71.        add edx,4
    72.        dec r14d;NumberOfNames
    73.        jnz @b
    74. @@:    mov eax,[r12+rdx]
    75.        add rax,rbx
    76.        leave
    77.        ret
    78. func endp
    79. ;.data---------------------------------------
    80. aLdrLoadDll db "LdrLoadDll",0
    81. aUser32_    dw 'u','s','e','r','3','2','.','d','l','l',0
    82. aLdrGetProcedureAddress db "LdrGetProcedureAddress",0
    83. aTitle      db "MessageBox without import",0
    84. aMessage    db "Hello, world!",0
    85. aMessageBoxA db "MessageBoxA",0
    86. end
    во вложении asm/exe-файл
     

    Вложения:

    Semiono и mantissa нравится это.
  2. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    290
    Win7 x64:

    tut.png
     
  3. mantissa

    mantissa Administrator Команда форума

    Публикаций:
    0
    Регистрация:
    9 сен 2022
    Сообщения:
    178
    у меня работает win 10
     
    Mikl___ нравится это.
  4. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    290
    судя по стеку вызовов или LdrLoadDll(), или LdrGetProcedureAddress()

    Код (Text):
    1.  
    2. 0:000> kv n
    3. # Child-SP           RetAddr            : Args to Child                                                              : Call Site
    4. 00 00000000`0013fc50  00000000`76eb4f91  : 00000000`00000000  00000000`00000000  00000000`76e873c0  00000000`00000000 : ntdll!LdrpApplyFileNameRedirection+0x37
    5. 01 00000000`0013fcf0  00000000`76eb7acc  : 00000000`76e80000  00000000`00000000  00000000`00400361  00000000`00000000 : ntdll!LdrGetDllHandleEx+0x101
    6. 02 00000000`0013fec0  00000000`004002d4  : 00000000`00000017  00000000`0040034a  00000000`00000000  00000000`00000000 : ntdll!LdrGetDllHandle+0x1c
    7. 03 00000000`0013ff00  00000000`00000017  : 00000000`0040034a  00000000`00000000  00000000`00000000  00000000`00000000 : image00000000_00400000+0x2d4
    8. 04 00000000`0013ff08  00000000`0040034a  : 00000000`00000000  00000000`00000000  00000000`00000000  00000000`00400389 : 0x17
    9. 05 00000000`0013ff10  00000000`00000000  : 00000000`00000000  00000000`00000000  00000000`00400389  00000000`00000000 : image00000000_00400000+0x34a
    10.  
    --- Сообщение объединено, 5 фев 2025 ---
    а в x64dbg падает сразу на старте, не успев даже сделать первый вздох:

    tut2.png
     
  5. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    611
  6. mantissa

    mantissa Administrator Команда форума

    Публикаций:
    0
    Регистрация:
    9 сен 2022
    Сообщения:
    178
    последняя процедура в стеке вызовов и у alex_dz и у Marylin LdrpApplyFileNameRedirection и потом ошибка чтения по нулевому адресу
     
    alex_dz нравится это.
  7. Prober

    Prober Member

    Публикаций:
    0
    Регистрация:
    4 дек 2008
    Сообщения:
    55
    Mikl___, у вас проблема с поиском адреса экспортируемой функции. Вот кусок документации от MS:

    [​IMG]

    А у вас по факту:
    Код (Text):
    1. i = Search_ExportNamePointerTable (ExportName);
    2. SymbolRVA = ExportAddressTable [i - OrdinalBase];
    Вероятно, на Win10 из-за особенностей DLL оба алгоритма дают одинаковый результат. А на Win7/Win8 есть несколько функций с ординалами без имён, они ломают поиск.


    Ещё момент. Ваша программа без релоков, ImageBase вписывается в Dword, поэтому здесь
    Код (Text):
    1. mov NameProc,edx
    2. . . .
    3. mov esi,NameProc
    проблем не возникает. Но вообще-то нужны 64-битные регистры.
     
  8. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    290
    Раскрутка стека показывает, что до адреса 0x004002d4 всё шло нормально,
    а дальше проц зашёл в call Result, в нёдрах которого и наткнулся на "NULL_POINTER_READ".
    если посмотреть в IDA, то получим сл.картину:

    ida.png

    Код (Text):
    1. 0:000> g
    2. (f4.bcc): Access violation - code c0000005 (first chance)
    3. First chance exceptions are reported before any exception handling.
    4. This exception may be expected and handled.
    5. ntdll!LdrpApplyFileNameRedirection+0x37:
    6. 00000000`76fcea37 66833a08        cmp     word ptr [rdx],8 ds:00000000`00000000=????
    7.  
    8. 0:000> !analyze -v
    9. *******************************************************************************
    10. *                        Exception Analysis                                   *
    11. *******************************************************************************
    12. FAULTING_IP:
    13. ntdll!LdrpApplyFileNameRedirection+37
    14. 00000000`76fcea37 66833a08        cmp     word ptr [rdx],8
    15.  
    16. EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
    17. ExceptionAddress: 0000000076fcea37 (ntdll!LdrpApplyFileNameRedirection+0x37)
    18.    ExceptionCode: c0000005 (Access violation)
    19.   ExceptionFlags: 00000000
    20. NumberParameters: 2
    21.    Parameter[0] : 0000000000000000
    22.    Parameter[1] : 0000000000000000
    23. Attempt to read from address 0000000000000000
    24.  
    25. FOLLOWUP_IP:
    26. image00000000_00400000+2d4
    27. 00000000`004002d4  41b900000000    mov     r9d,0  <----------------------//
    28.  
    29. NTGLOBALFLAG         :  470
    30. APP_VERIFIER_FLAGS   :  0
    31. PRIMARY_PROBLEM_CLASS:  NULL_POINTER_READ
    32. LAST_CONTROL_TRANSFER:  from 0000000076fd4f91 to 0000000076fcea37
    33.  
    34. STACK_TEXT:
    35. 00000000`0013fc50  00000000`76fd4f91  : ntdll!LdrpApplyFileNameRedirection+0x37
    36. 00000000`0013fcf0  00000000`76fd7acc  : ntdll!LdrGetDllHandleEx+0x101
    37. 00000000`0013fec0  00000000`004002d4  : ntdll!LdrGetDllHandle+0x1c
    38. 00000000`0013ff00  00000000`00000017  : image00000000_00400000+0x2d4  <---------------------//
    39. 00000000`0013ff08  00000000`0040034a  : 0x17
    40. 00000000`0013ff10  00000000`00000000  : image00000000_00400000+0x34a
    41.  
    42. SYMBOL_STACK_INDEX :  3
    43. SYMBOL_NAME        :  image00000000_00400000+2d4
    44. FOLLOWUP_NAME      :  MachineOwner
    45. IMAGE_NAME         :  F:\tut_01c.exe
    46. DEBUG_FLR_TIMESTAMP:  67a33d2f
    47. STACK_COMMAND      :  ~0s ; kb
    48. BUCKET_ID          :  X64_APPLICATION_FAULT_NULL_POINTER_READ_image00000000_00400000+2d4
    49. --------------------------
     
  9. k3rnl

    k3rnl Member

    Публикаций:
    0
    Регистрация:
    28 янв 2021
    Сообщения:
    71
    Советую использовать LdrGetProcedureAddressForCaller так как именно эта функция обрабатывается в ntdll.dll
    А LdrGetProcedureAddress и LdrGetProcedureAddressEx просто лишние стабы
     
  10. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.126
    Код (ASM):
    1. ; GUI #
    2. include win64a.inc
    3. .code
    4. WinMain proc
    5. local Message:UNICODE_STRING
    6. local Result:qword
    7.        mov rax,qword ptr gs:[60h];Получаем адрес PEB
    8.        mov rax,[rax+18h];Смещаемся к структуре PEB_LDR_DATA
    9.        mov rax,[rax+20h];Смещаемся к полю PEB_LDR_DATA.InMemoryOrderModuleList
    10.        mov rax,[rax]
    11.        mov rbx,[rax+20h];Базовый адрес ntdll.dll
    12.        mov r9d,[rbx].IMAGE_DOS_HEADER.e_lfanew;смещение до PE-заголовка
    13. ;18h to optional header + 70h to data directories
    14.        mov r9d,dword ptr[rbx+r9+18h].IMAGE_OPTIONAL_HEADER64.DataDirectory;смещение до секции экспорта
    15. ;Пеpейти к таблице экспоpта и получить количество имен (NumberOfNames)
    16.        add r9,rbx;переходим в таблицу экспорта
    17.        mov r13d,[r9].IMAGE_EXPORT_DIRECTORY.AddressOfNames;[r9+20h]
    18.        add r13,rbx;
    19.        mov r15d,[r9].IMAGE_EXPORT_DIRECTORY.AddressOfNameOrdinals;AddressOfNameOrdinals (rva)
    20.        add r15,rbx;add dll base address ExportOrdinalTable
    21.        mov r12d,[r9].IMAGE_EXPORT_DIRECTORY.AddressOfFunctions;[r9+1Ch]
    22.        add r12,rbx;tableOfAddressOfFunctions
    23. ;---------------------------------------------------
    24.        mov ecx,11
    25.        invoke func,,"LdrLoadDll"
    26.        mov Message.woLength,14h
    27.        mov Message.MaximumLength,16h
    28.        movr qword ptr Message.Buffer,aUser32_
    29.        lea r8,Message
    30.        mov ecx,1
    31.        lea edx,Result
    32.        mov r9,rdx
    33.        call rax;LdrLoadDll_
    34. ;---------------------------------------
    35.        mov Message.woLength,12
    36.        mov Message.MaximumLength,13
    37.        movr qword ptr Message.Buffer,aMessageBoxA
    38. ;----------------------------------------------------
    39.        mov ecx,20
    40.        invoke func,,"LdrGetProcedureAddressForCaller"
    41.        xor r8,r8
    42.        lea rdx,Message
    43.        movr qword ptr[rsp+28h],aMessageBoxA
    44.        lea r9,Result
    45.        mov rcx,[r9]
    46.        and dword ptr[rsp+20h],0
    47.        call rax;LdrGetProcedureAddress_
    48. ;-----------------------------------
    49.        invoke Result,0,"Hello, world!","MessageBox without import",MB_OK
    50.        mov ecx,19
    51.        invoke func,,"RtlExitUserProcess"
    52.        xor ecx,ecx
    53.        call rax;RtlExitUserProcess
    54. WinMain endp
    55. ;i =  Search_ExportNamePointerTable(ExportName)
    56. ;ordinal = ExportOrdinalTable[i]
    57. ;SymbolRVA = ExportAddressTable [ordinal - OrdinalBase];
    58. func proc sizeof1:dword,NameProc:qword
    59.        mov sizeof1,ecx
    60.        mov NameProc,rdx
    61.        xor edx,edx
    62. @@:    mov edi,[r13+rdx*4];AddressOfNames[rdx*4]
    63.        add rdi,rbx
    64.        mov rcx,sizeof1;
    65.        mov rsi,NameProc;
    66.        repe cmpsb
    67.        or ecx,ecx
    68.        je @f
    69.        inc edx
    70.        jnz @b
    71. @@:    movzx edx,word ptr[r15+rdx*2];get ordinal value from array of words ordinal = ExportOrdinalTable[rdx*2]
    72.        mov eax,[r12+rdx*4];r12=AddressOfFunctions
    73.        add rax,rbx
    74.        leave
    75.        ret
    76. func endp
    77. ;---------------------------------------
    78. aUser32_ dw "u","s","e","r","3","2",".","d","l","l",0
    79. aMessageBoxA db "MessageBoxA",0
    80. end
    во вложении asm/exe-файл
     

    Вложения:

  11. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    290
    Mikl___, всё равно на моей Win7 не работает,
    только на этот раз падает на входе в LdrLoadDll(), и выстреливает такое-же окно с ошибкой:
    Код (Text):
    1. 0:000> g
    2. (b3c.b50): Access violation - code c0000005 (first chance)
    3. First chance exceptions are reported before any exception handling.
    4. This exception may be expected and handled.
    5.  
    6. ntdll!LdrLoadDll+0x97:
    7. 00000000`77d5a3c7 488b7308        mov     rsi,qword ptr [rbx+8] ds:00000000`00000008=????????????????
    8.  
    9. 0:000> !analyze -v
    10. *******************************************************************************
    11. *                        Exception Analysis                                   *
    12. *******************************************************************************
    13. FAULTING_IP:
    14. ntdll!LdrLoadDll+97
    15. 00000000`77d5a3c7 488b7308        mov     rsi,qword ptr [rbx+8]
    16.  
    17. EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
    18. ExceptionAddress: 0000000077d5a3c7 (ntdll!LdrLoadDll+0x0000000000000097)
    19.    ExceptionCode: c0000005 (Access violation)
    20.   ExceptionFlags: 00000000
    21. NumberParameters: 2
    22.     Parameter[0]: 0000000000000000
    23.     Parameter[1]: 0000000000000008
    24. Attempt to read from address 0000000000000008
    25.  
    26. FOLLOWUP_IP:
    27. image00000000_00400000+259
    28. 00000000`00400259 66c745f00c00    mov     word ptr [rbp-10h],0Ch
    29.  
    30. NTGLOBALFLAG      :  470
    31. APP_VERIFIER_FLAGS:  0
    32. BUGCHECK_STR      :  APP_FAULT_NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_INVALID_POINTER_READ
    33. PROBLEM_CLASS     :  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT
    34. BUCKET_ID         :  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT
    35. LAST_CONTROL_TRANSFER:  from 0000000000400259 to 0000000077d5a3c7
    36.  
    37. STACK_TEXT:
    38. 00000000`0013fe90  00000000`00400259  : ntdll!LdrLoadDll+0x97
    39. 00000000`0013ff00  00000000`0000000b  : image00000000_00400000+0x259
    40. 00000000`0013ff08  00000000`77c70000  : 0xb
    41. 00000000`0013ff10  00000000`0013ff50  : ntdll!NtDllUserStubs <PERF> (ntdll+0x0)
    42. 00000000`0013ff18  00000000`0040030f  : 0x13ff50
    43. 00000000`0013ff20  00000000`00000000  : image00000000_00400000+0x30f
    44. ---------------------------------------
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.126
    Marylin,
    ну, хоть какой-то прогресс :good3:, проблему описал Prober, проблема с поиском адреса экспортируемой функции ... на Win7/Win8 есть несколько функций с ординалами без имён, они ломают поиск я не помню, где-то у тебя в статьях на codeby.net был описан процесс поиска функций в экспорте, не можешь подсказать где? Prober и k3rnl, отдельное спасибо, кое-что я исправил, но судя по всему не до конца
    Попробуйте с новым ехе-шником
     

    Вложения:

  13. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    290
    без изменений LdrLoadDll()
    вроде РЕ-файл --> Импорт
     
  14. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    611
    'tut_01d.exe.4940.dmp' (Minidump): Loaded 'C:\Windows\System32\ntdll.dll'. Symbols loaded.
    'tut_01d.exe.4940.dmp' (Minidump): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
    'tut_01d.exe.4940.dmp' (Minidump): Loaded 'C:\Windows\System32\KERNELBASE.dll'. Symbols loaded.
    Unhandled exception at 0x0000000076E5A3C7 (ntdll.dll) in tut_01d.exe.4940.dmp: 0xC0000005: Access violation reading location 0x0000000000000008.


    https://prnt.sc/aGSBqeK_8ION
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.126

    Вложения:

  16. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    290
    Mikl___, не робит - даже адрес крэша остался тот-же LdrLoadDll()+0x97
    что-то ты видимо упускаешь из виду, хотя если на Win10 работает, то...
     
  17. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.126
    Marylin,
    можешь запустить dumpbin.exe /EXPORTS %windir%\System32\ntdll.dll /OUT:ntdll.txt
    и выложить ntdll.txt? dumpbin.exe есть в masm32\bin или в аттаче
     

    Вложения:

    • dumpbin.zip
      Размер файла:
      935 байт
      Просмотров:
      218
    Последнее редактирование: 8 фев 2025
  18. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    290
    Вот лог..
    --- Сообщение объединено, 8 фев 2025 ---
    Mikl___, шелл для поиска функции в экспорте либы:
    Код (ASM):
    1. format   pe64 console
    2. include 'win64ax.inc'
    3. entry    start
    4. ;//-----------
    5. .data
    6. struct EXPORT_TABLE
    7.   Flags              dd  0    ;// 00
    8.   TimeStamp          dd  0    ;// 04
    9.   Version            dd  0    ;// 08
    10.   NameRVA            dd  0    ;// 12  имя образа (exe/dll)
    11.   OrdinalBase        dd  0    ;// 16
    12.   NumOfFunction      dd  0    ;// 20  всего функций
    13.   NumOfNamePointers  dd  0    ;// 24  всего указателей на имена функций
    14.   AddressTableRVA    dd  0    ;// 28  линк на таблицу адресов
    15.   NamePointersRVA    dd  0    ;// 32  линк на таблицу имён
    16.   OrdinalTableRVA    dd  0    ;// 36  линк на таблицу ординалов
    17. ends
    18. szLoadDll        db  'LdrLoadDll',0
    19. szLen            =   $ - szLoadDll
    20. buff             db  0
    21. ;//-----------
    22.  
    23. section '.text' code readable executable
    24. start:   sub     rsp,8
    25.  
    26. ;//----- Ищем в РЕВ базу Ntdll
    27.          mov     rax,[gs:60h]
    28.          mov     rax,[rax+18h]
    29.          mov     rax,[rax+20h]
    30.          mov     rax,[rax]
    31.          mov     rsi,[rax+20h]  ;// RSI - Base
    32.  
    33. ;//----- Берём линк на EXPORT_TABLE из PE.DATA_DIRECTORY
    34.          mov     ebx,dword[rsi+0x3c]
    35.          add     rbx,rsi
    36.          add     rbx,136        ;// DATA_DIR.Export
    37.          mov     ebx,dword[rbx]
    38.          add     rbx,rsi
    39.  
    40. ;//----- Раскидываем по регистрам инфу из EXPORT_TABLE
    41.          mov     r10d,dword[rbx+EXPORT_TABLE.AddressTableRVA]  ;// R10 = Адрес
    42.          mov     r11d,dword[rbx+EXPORT_TABLE.NamePointersRVA]  ;// R11 = Имя
    43.          mov     r12d,dword[rbx+EXPORT_TABLE.OrdinalTableRVA]
    44.          add     r10,rsi
    45.          add     r11,rsi
    46.          add     r12,rsi
    47.          mov     rbx,rsi        ;// RBX = Base
    48.  
    49. ;//----- Пропустим безымянные функции (только с ординалом)
    50.          movzx   eax,word[r12]
    51.          shl     eax,2
    52.          add     r10,rax
    53.  
    54. ;//----- Поиск адреса LdrLoadDll() в экспорте..
    55. @find:   mov     rdi,szLoadDll
    56.          mov     esi,[r11d]
    57.          add     rsi,rbx
    58.          mov     rcx,szLen
    59.          repe    cmpsb          ;// Сравнить строки..
    60.          jecxz   @ok
    61.          add     r10,4          ;// сл.запись в таблицах
    62.          add     r11,4
    63.          add     r12,4
    64.          jmp     @find
    65.  
    66. @ok:     mov     r10d,dword[r10]
    67.          mov     r11d,dword[r11]
    68.          add     r10,rbx           ;// R10 = Address
    69.          add     r11,rbx           ;// R11 = Имя
    70.         cinvoke  printf,<10,' Addr: %p  Name: %s'>,r10,r11
    71.  
    72. ;//----- Проверим стд.способом
    73.          invoke  GetModuleHandle,<'ntdll.dll',0>
    74.          invoke  GetProcAddress,rax,<'LdrLoadDll',0>
    75.         cinvoke  printf,<10,' Addr: %p  Name: %s'>,rax,szLoadDll
    76.  
    77. @exit:  cinvoke  _getch
    78.         cinvoke  exit, 0
    79. ;//-----------
    80. section '.idata' import data readable
    81. library  msvcrt,'msvcrt.dll',kernel32,'kernel32.dll'
    82. include 'api\msvcrt.inc'
    83. include 'api\kernel32.inc'
    84.  
    123.png
     

    Вложения:

    • ntdll.txt
      Размер файла:
      96 КБ
      Просмотров:
      212
    • FindExp.zip
      Размер файла:
      697 байт
      Просмотров:
      218
  19. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    406
    Для разбора ошибок в загрузчике имеется логгер, который показывает подробнейшую обработку.
     
    Последнее редактирование: 8 фев 2025
    Mikl___ нравится это.
  20. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.126

    Вложения: