2009-10-16 5 views
3

Comme discuté dans another question, il est possible de patcher cmd.exe pour supprimer le "Terminate batch job (O/N)?" message. Patching instructions sont disponibles pour Windows XP.Comment est-ce que je peux supprimer le "travail de fin de lot" dans Win7 cmd.exe

Malheureusement, ces instructions de correction sont obsolètes pour Windows 7, et je ne connais pas assez d'assemblages pour les mettre à jour. (Je sais comment utiliser un éditeur hexadécimal, et j'ai pu suivre les instructions pour WinXP.)

Basé sur ces instructions WinXP, comment puis-je mettre à jour cmd.exe dans Windows 7 pour corriger ce bug odieux?

+0

Cela semble presque identique à http: // stackoverflow. com/questions/1234571/comment-je-supprimer-le-terminer-batch-job-in-cmd-exe – sorin

Répondre

3

L'auteur de la page Web m'a donné des compensations de remplacement:

.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 

Dans le 64bit win7 cmd.exe qui est 0x20 octets à partir de décalage 0x1c35d

1

Ecrivez un exécutable réel qui exécute ensuite votre fichier bat et les tuyaux d'entrée et de sortie dans les deux sens, ne passant évidemment pas Ctrl + Break?

Questions connexes