Окно ошибок - windows

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 23 апр 2025.

  1. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    848
    [​IMG]

    Можно как-то в чужом приложении запретить окно ошибок?
    Как-то запустить приложение или в Windows (8.1) где-то убрать эти сообщения?
    Или написать запускатель который ждёт, ловит и закрывает тупо)
    Окно только при закрытии возникает всегда.
    Или может код проги поправить
    :vinsent:
     
  2. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    463
    Подгрузить длл в адресное пространство и перехватить мессаджбокс, как один из вариантов.
     
    Последнее редактирование: 23 апр 2025
    Semiono нравится это.
  3. Prober

    Prober Member

    Публикаций:
    0
    Регистрация:
    4 дек 2008
    Сообщения:
    55
    Хорошая идея.
    При появлении критической ошибки обычно борются с ней самой, а не с сообщением о ней.
     
    miilalex и Semiono нравится это.
  4. MaKsIm

    MaKsIm Active Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    223
    Вот только инструкция явно не из пользовательского пространства. Значит просто закрыть сообщение это не правильное решение. Надо бы по хорошему это исправлять.
     
  5. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    848
    Это взломаное приложение, если бы я разбирался в столь сложном коде) хоть работает ито хорошо))
     
  6. Intro

    Intro Well-Known Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    1.708
    Semiono, тогда надо реверсить отлаживать, в общем ИДАпро ковырять, или гидрой.
     
    Semiono нравится это.
  7. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    308
    Можно написать библиотеку dll с SEH/VEH, которая будет перехватывать ошибки.
    Далее берёшь софтину CFF-Explorer, и через её пункт "Import Adder" подключаешь эту либу к глючной проге.
    Если повезёт - можешь отловить окно, и молча закрыть его.

    CffExp.png
     
    Semiono и alex_dz нравится это.
  8. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    610
    умеют же люди утилиту делать (СFF)
    почти 20 лет
    а пашет что часики на всех форточках!!
     
    M0rg0t и Semiono нравится это.
  9. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    848
    Код (Text):
    1. include '%fasm%/win64ax.inc'
    2. section '.code' executable
    3. start:
    4.         sub rsp,8
    5.  
    6.         invoke SHGetSpecialFolderPath,NULL,a,CSIDL_PROGRAM_FILES,NULL
    7.         invoke PathAddBackslash,a
    8.         invoke lstrcat,a,'Giglad'
    9.         invoke PathAddBackslash,a
    10.         invoke lstrcat,a,'Giglad.exe'
    11.  
    12.         invoke GetBinaryType,a,z
    13.         cmp eax,NULL
    14.         jz exit
    15.  
    16.         invoke RtlZeroMemory,startInfo,sizeof.startInfo
    17.         invoke RtlZeroMemory,procInfo,sizeof.procInfo
    18.         mov [startInfo.cb], sizeof.startInfo
    19.         invoke CreateProcess,NULL,a,NULL,NULL,DETACHED_PROCESS,NORMAL_PRIORITY_CLASS,NULL,NULL,startInfo,procInfo
    20.         invoke WaitForSingleObject,[procInfo.hProcess],0xffffffff ; INFINITE
    21.         invoke CloseHandle,procInfo.hProcess
    22.         invoke CloseHandle,procInfo.hThread
    23.  
    24.         mov ecx,30
    25. @@:
    26.         invoke FindWindow,NULL,'Giglad.exe - Application Error'
    27.         mov [r],eax
    28.         cmp eax,NULL
    29.         jnz @f
    30.         dec ecx
    31.         cmp ecx,NULL
    32.         jz @f
    33.         invoke Sleep,300
    34.         jmp @r
    35. @@:
    36.         invoke CloseWindow,[r]
    37.         invoke Sleep,300
    38.         invoke CloseWindow,[r]
    39. exit:
    40.         invoke ExitProcess,NULL
    41.  
    42. section '.data' readable writeable
    43.  
    44.         a rb MAX_PATH
    45.         b rb MAX_PATH
    46.  
    47.         r dd NULL
    48.  
    49.         x dd NULL
    50.         z dd NULL
    51.  
    52.         startInfo STARTUPINFO <>
    53.         sizeof.startInfo = $ - startInfo
    54.         procInfo PROCESS_INFORMATION <>
    55.         sizeof.procInfo = $ - procInfo
    56.  
    57. section '.idata' import readable
    58.  
    59.         library kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL',shlwapi,'SHLWAPI.DLL',user32,'USER32.DLL'
    60.         include '%fasm%/api/kernel32.inc'
    61.         include '%fasm%/api/shell32.inc'
    62.         include '%fasm%/api/shlwapi.inc'
    63.         include '%fasm%/api/user32.inc'
    Что-то я тут набрал, вроде один раз сработало, но это не точно) :yes:
    --- Сообщение объединено, 23 апр 2025 ---
    Вот что-то такое я предполагал HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting, Disabled = 0x00000001
    Хотя лучше бы персонально, как-то DebugApplications\[ExeName]
    но там я не понял где и как.. https://learn.microsoft.com/en-us/windows/win32/wer/wer-settings
    --- Сообщение объединено, 23 апр 2025 ---
    Вот что ещё там вычитал:
    Код (Text):
    1. include '%fasm%/win64ax.inc'
    2. section '.code' executable
    3. start:
    4.         sub rsp,8
    5.  
    6.         invoke WerAddExcludedApplication,a,1
    7. exit:
    8.         invoke ExitProcess,NULL
    9.  
    10. section '.data' readable
    11.  
    12.         a du 'Giglad.exe',NULL
    13.  
    14. section '.idata' import readable
    15.  
    16.         library kernel32,'KERNEL32.DLL',wer,'WER.DLL'
    17.         include '%fasm%/api/kernel32.inc'
    18.         import wer,WerAddExcludedApplication,'WerAddExcludedApplication'
    Теперь понятно, интересно, а работать будет)
    --- Сообщение объединено, 23 апр 2025 ---
    Код (Text):
    1.         invoke SHSetValue,HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows\Windows Error Reporting\ExcludedApplications','Giglad.exe',REG_DWORD,@00000001,4
     
    Research нравится это.
  10. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    602
    Посмотрел, сообщение идёт через \\WindowsErrorReportingServicePort

    Может не дать его открыть, права попробовать урезать..