如何在Win7 cmd.exe中禁止“终止批处理作业”

时间:2009-10-16 21:43:56

标签: assembly batch-file cmd

another question中所述,可以修补cmd.exe以禁止“终止批处理作业(是/否)?”信息。 Patching instructions适用于Windows XP。

不幸的是,对于Windows 7,这些修补方向已经过时,我不知道有足够的程序集来更新它们。 (我知道如何使用十六进制编辑器,并且能够按照WinXP的说明进行操作。)

根据这些WinXP说明,如何更新Windows 7中的cmd.exe来修复这个令人讨厌的错误?

2 个答案:

答案 0 :(得分:3)

该网页的作者给了我更换补偿:

.text:000000004AD1CF53 48 83 3D 8D 02 01 00 00                 cmp     cs:CurrentBatchFile, 0
.text:000000004AD1CF5B 74 3D                                   jz      short loc_4AD1CF9A
.....
.text:000000004AD1CF5D BA 7B 23 00 00                          mov     edx, 237Bh
.text:000000004AD1CF62 33 C9                                   xor     ecx, ecx
.text:000000004AD1CF64 44 8D 42 AD                             lea     r8d, [rdx-53h]
.text:000000004AD1CF68 E8 E3 7B 00 00                          call    PromptUser
.text:000000004AD1CF6D 83 F8 01                                cmp     eax, 1
.text:000000004AD1CF70 74 0B                                   jz      short loc_4AD1CF7D
.text:000000004AD1CF72 E8 B9 51 FE FF                          call    ResetCtrlC
^F.text:000000004AD1CF77 90                                      nop
.text:000000004AD1CF78 E9 46 54 FE FF                          jmp     loc_4AD023C3
.....
.text:000000004AD1CF7D                         loc_4AD1CF7D:                           ; CODE XREF:
CheckCtrlC+1ABC0^Xj
.text:000000004AD1CF7D 48 8B 1D 64 02 01 00                    mov     rbx, cs:CurrentBatchFile
.text:000000004AD1CF84 EB 0F                                   jmp     short loc_4AD1CF95

在64位win7 cmd.exe中,从偏移量0x1c35d开始为0x20字节

答案 1 :(得分:1)

编写一个真正的可执行文件然后运行你的bat文件并来回管道输入和输出,显然没有通过Ctrl + Break?