第一条红线提示Single User License或者Site License或者多用户的N User License 第二条红线提示Evaluation Period Expired 第三条红线提示Invalid License的 第四条红线提示Upgrade Required - Evaluation Expired 第五条红线提示Bad Clock Date 再往后红线和绿线分别提示Use Left和Days Left
我们修改一个字节就可以了,把jnz short loc_1400DD86D替换为jmp short loc_1400DD86D, 这样关闭Register窗口应用程序永远都不会退出了。
这个程序中使用了四个子函数!basic_patch已经可以让程序基本正常运行,虽然不够完美,对于一般用户来说足够了;license_patch让系统显示Single User License,如果有兴趣,你也可以进一步个性化修改,这个并不影响程序正常运行;registerExit_patch修正了关闭Register窗口整个程序都会退出的问题;checkLicense_patch使得用户不管输入什么样的用户名和密码,都会提示“Password accepted”,并且你的用户名会在启动程序时显示。
Hi Did some changes to the C code to get it working correctly , also on the first patch my version of 010 V801 editor had some small differences to the code ( reflected in my version of the patch code )
printf("010 Editor V801 Patcher - Run in local directory where 010Editor files reside \n");
FILE *fp; int rtn=0; fp = fopen("010Editor.exe","rb+"); // Changes to run in local dir of program as not all programs are installed in default ms dirs if(fp==NULL) { printf("Can't find 010Editor.exe.\n"); exit(0); }
/* The basic_patch function is enough for ordinary people */ void basic_patch(FILE *fp)//Patch for sub_140C50FA0 { int fail; fseek(fp, 0xc50760, SEEK_SET); //Offset:0xc50761
// From exe file of editor as per tutorial //006e2d00h: 00 00 00 48 8B 0D 8E 92 9A 01 83 79 30 01 75 2D ; //006e2d10h: 48 8D 15 D9 25 EE 00 48 8D 4D 30 FF 15 E7 60 BB ;
if( (failA1==1) & (failA2==1) & (failB==1) & (failC==1)) printf("\n----License patch success! 16 bytes are patched ----\ \n Your program are now licensed to \"Single User License\" %x:\n ",failA1); else printf("----License patch failed!---- %x: \n ",failA1);
/* Function registerExit_patch fix the bug when you close the Register Window, your program will terminate */ void registerExit_patch(FILE *fp) { int fail; fseek(fp, 0xdcc50, SEEK_SET);
/* Function checkLicense_patch If you don't left username and password blank, when you press "Check License" on Register window, you will always success! */ void checkLicense_patch(FILE *fp) { int fail;