• 标 题:用SoftICE跳过注册码检查可以安装成功,其试用版是用VBOX搞的 (3千字)
  • 作 者:blowfish
  • 时 间:2001-4-22 21:09:59
  • 链 接:http://bbs.pediy.com

JVISION 1.4.2 for Commercial use

http://www.object-insight.com/html/screensunlock.html

这个需要安装序列号的好象是正式版?装好之后没有VBOX。

jvision*.exe

001B:02FFDE77  8B442410            MOV      EAX,[ESP+10]
001B:02FFDE7B  85C0                TEST      EAX,EAX
001B:02FFDE7D  7522                JNZ      02FFDEA1            //NOP this
001B:02FFDE7F  8BC3                MOV      EAX,EBX
001B:02FFDE81  8BCE                MOV      ECX,ESI
001B:02FFDE83  E88C7FCDFE          CALL      01CD5E14            //finishing installation
001B:02FFDE88  8B6C2448            MOV      EBP,[ESP+48]
001B:02FFDE8C  B801000000          MOV      EAX,00000001
001B:02FFDE91  8B7C2444            MOV      EDI,[ESP+44]
001B:02FFDE95  8B742440            MOV      ESI,[ESP+40]
001B:02FFDE99  8B5C243C            MOV      EBX,[ESP+3C]
001B:02FFDE9D  83C44C              ADD      ESP,4C
001B:02FFDEA0  C3                  RET
001B:02FFDEA1  B8D0B5C700          MOV      EAX,00C7B5D0
001B:02FFDEA6  8BCE                MOV      ECX,ESI
001B:02FFDEA8  E893404900          CALL      03491F40
001B:02FFDEAD  8BCE                MOV      ECX,ESI
001B:02FFDEAF  E88891CDFE          CALL      01CD703C              //"serial number incorrect"

安装程序似是用InstallAnywhere for Java制作的。有个编译后的安装脚本文件InstallScript.data,但实际上是个*.class文件,里面有判断注册码的东西。如下:

        show_Serial_Number_Panel_Enter_Serial_Number = new SetSerialNumber();
        show_Serial_Number_Panel_Enter_Serial_Number.setPrefix(true);
        show_Serial_Number_Panel_Enter_Serial_Number.setMutuallyExclusiveProducts(true);
        show_Serial_Number_Panel_Enter_Serial_Number.setSeedStr("*#&*,&*,!*#!},!*,!}#!*,&*#&");
        show_Serial_Number_Panel_Enter_Serial_Number.setNoOfSerialNumbers(1000L);
        show_Serial_Number_Panel_Enter_Serial_Number.setMatchingProduct("Product");
        show_Serial_Number_Panel_Enter_Serial_Number.setInstallPanelClassName("com.zerog.ia.installer.installpanels.SerialNumberInstallPanel");
        show_Serial_Number_Panel_Enter_Serial_Number.setAllowBlankInput(false);
        show_Serial_Number_Panel_Enter_Serial_Number.setSerialNumberEntered("UserEnteredSerialNumber");
        show_Serial_Number_Panel_Enter_Serial_Number.setPrompt("Please Enter the Serial Number: ");
        show_Serial_Number_Panel_Enter_Serial_Number.setStepTitle("Enter Serial Number");
        show_Serial_Number_Panel_Enter_Serial_Number.setNoOfProductsStr("(|%({e$@+.");
        show_Serial_Number_Panel_Enter_Serial_Number.setStaticStringStr("+`^+:+|(}:+!(})");
        show_Serial_Number_Panel_Enter_Serial_Number.setSuffix(false);
        show_Serial_Number_Panel_Enter_Serial_Number.setAdditionalText("This Installer Requires a Serial Number to Continue");
        show_Serial_Number_Panel_Enter_Serial_Number.setNoOfDigitsStr("(!^(@@*e1.");
        show_Serial_Number_Panel_Enter_Serial_Number.setFileName("jvision142w_SerialNumbers.txt");
        show_Serial_Number_Panel_Enter_Serial_Number.setExternalID("SetSerialNumber.15");
        ProgressMonitor.updateScriptIncrement();
        jVISIO2_preInstallActions.addElement(show_Serial_Number_Panel_Enter_Serial_Number);

再把临时目录下的IAclasses.zip解开,找到SetSerialNumber.class、SerialNumberManager.class、SerialNumberInstallPanel.class,真正的注册码判断就在这里面。有兴趣的自己分析吧。真正的程序文件都在installer.zip中的raw目录下。