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目錄下。