не знаю, но у меня RIP=0 на входе и сразу падает: Код (Text): 0:000> g (1cf0.117c): Access violation - code c0000005 (first chance) 00000000`00000000 ?? ??? 0:000> r rax=00000000c0000135 rbx=0000000000000076 rcx=0000000000000000 rdx=0000000000400309 rsi=00000000772b9c1e rdi=000000000000070e rip=0000000000000000 rsp=000000000013fef8 rbp=000000000013ff50 r8=0000000000400317 r9=0000000000000000 r10=0000000000000000 r11=000000000013fe72 r12=00000000772b4358 r13=00000000772b6264 r14=00000000771a0000 r15=0000000000000000 iopl=0 nv up ei pl zr na po nc cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246 Может у тебя обновы не установлены или ещё чё.. Более того, если стек не выровнен на 16-байт границу, у меня падает любой софт (который я сам пишу) при вызове апи, а у тебя как-раз RSP=13fef8. Ну кратность размеров секции вроде отрабатывало раньше у меня норм, хотя у тебя стоят 10:10 байт в пе-хидере: Код (Text): 0:000> !dh image00000000`00400000 File Type: EXECUTABLE IMAGE FILE HEADER VALUES 8664 machine (X64) 1 number of sections 67BD0A50 time date stamp Tue Feb 25 05:09:52 2025 0 file pointer to symbol table 0 number of symbols F0 size of optional header 3 characteristics Relocations stripped Executable OPTIONAL HEADER VALUES 20B magic # 14.40 linker version 180 size of code 0 size of initialized data 0 size of uninitialized data 1E0 address of entry point 1C0 base of code ----- new ----- 0000000000400000 image base 10 section alignment <------+-------// 10 file alignment <------+ 2 subsystem (Windows GUI) 6.00 operating system version 0.00 image version 6.00 subsystem version 340 size of image 1C0 size of headers 0 checksum <------------- На эту хрень тоже ругается WinDbg 0000000000100000 size of stack reserve 0000000000001000 size of stack commit 0000000000100000 size of heap reserve 0000000000001000 size of heap commit 8100 DLL characteristics NX compatible Terminal server aware 0 [ 0] address [size] of Export Directory 0 [ 0] address [size] of Import Directory 0 [ 0] address [size] of Resource Directory 0 [ 0] address [size] of Exception Directory 0 [ 0] address [size] of Security Directory 0 [ 0] address [size] of Base Relocation Directory 0 [ 0] address [size] of Debug Directory 0 [ 0] address [size] of Description Directory 0 [ 0] address [size] of Special Directory 0 [ 0] address [size] of Thread Storage Directory 0 [ 0] address [size] of Load Configuration Directory 0 [ 0] address [size] of Bound Import Directory 0 [ 0] address [size] of Import Address Table Directory 0 [ 0] address [size] of Delay Import Directory 0 [ 0] address [size] of COR20 Header Directory 0 [ 0] address [size] of Reserved Directory SECTION HEADER #1 .text name 171 virtual size 1C0 virtual address 180 size of raw data 1C0 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers 80000020 flags Code (no align specified) Write Only
Marylin, я сам не ожидал, сколько мелочей придется учитывать при запуске крохотной программы, но всё равно всем принявшим участие огромное спасибо! Если кто-то хочет дорабатывать все листинги прикладывались... так что welcome!
Это FASM?!! Может лучше использовать UASM и его подвиды, либо старый добрый, но туповатый и проприетарный MASM? У меня таких проблем нету, я сначала фасм хотел использовать, ну изучить его, но потом посоветовали UASM, и я понял что фасм мне просто не нужен, UASM может всё то же что и фасм.
Вот я тоже собрал, не трогая пе формат. Зачем принудительно завершать процесс, а не по рет я так и не понял.
Ahimov, у меня этот семпл проваливается в чёрную дыру, хотя в отладчике(g) доходит до ret. Код (Text): CommandLine: F:\t.exe Symbol search path is: srv*c:\Symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00000001`3ff00000 00000001`3ff05000 image00000001`3ff00000 ModLoad: 00000000`771a0000 00000000`7733f000 ntdll.dll ModLoad: 00000000`76f80000 00000000`7709f000 C:\Windows\system32\kernel32.dll ModLoad: 000007fe`fcdc0000 000007fe`fce27000 C:\Windows\system32\KERNELBASE.dll (1ec4.1c80): Break instruction exception - code 80000003 (first chance) ntdll!LdrpDoDebuggerBreak+0x30: 00000000`77245c90 cc int 3 0:000> bp @$exentry *** WARNING: Unable to verify checksum for image00000001`3ff00000 0:000> g Breakpoint 0 hit image00000001_3ff00000+0x1074: 00000001`3ff01074 488bec mov rbp,rsp 0:000> g ntdll!ZwTerminateProcess+0xa: 00000000`77208d8a c3 ret Mikl___, на семёрке systeminfo в ком.строке сколько обновлений показывает? интересно, в чём разница наших Win7, то у тебя код работает, а у меня нет? Код (Text): C:\> systeminfo Название ОС: Microsoft Windows 7 Профессиональная Версия ОС: 6.1.7601 Service Pack 1 сборка 7601 Параметры ОС: Изолированная рабочая станция Код продукта: 00371-868-0000007-85883 Тип системы: x64-based PC Исправление(я): Число установленных исправлений - 69. <------------// [01]: KB2849697 [02]: KB2849697 [03]: KB2849696 .......... --- Сообщение объединено, 25 фев 2025 --- Ahimov, я особо не разбирался в исходнике, но чёто не видно, где при поиске пропускаются функции только с ординалом - у меня их 8 в самом начале экспорта Ntdll