📄 enigma 1.txt
字号:
/*======================================================== Enigma protector 1.02 - unpacker script========================================================Use this script after first one. You need to know OEPaddress (or false if there is stolen bytes), stolencode address and relocated code original section base(if there is that feature).Script will fix 95% of file if file is protected withall options. Emulated API's you need to fix manually.haggar========================================================*///Initialization:var ModBasevar cavevar stolen_code_startvar stolen_code_endvar oepvar loader_jumpvar loader_oepvar loader_basevar internal_check_startvar internal_check_endvar countervar code_relocationvar IAT_obfuscator_Ivar IAT_obfuscator_IIvar IAT_redirectormov stolen_code_start,0mov stolen_code_end,0//Collecting information from you:ask "Enter OEP value:"cmp $RESULT,0je EXITmov oep,$RESULTask "Enter stolen_code_start value:"mov stolen_code_start,$RESULT//Module base and finding space in PE header for injecting code:gmi eip,MODULEBASEmov ModBase,$RESULTfind ModBase,#00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000#mov cave,$RESULT//Find jump to loader:dbhcmt eip,"!!! P L E A S E W A I T !!!"find eip,#EB019AC35589E5FF750CFF7508E846000000#cmp $RESULT,0je ERRORmov loader_jump,$RESULTadd loader_jump,3bp loader_jumpestobc eip//Find loader base:stimov loader_oep,eipmov loader_base,loader_oepsub loader_base,2720C//Find internal check procedure:mov internal_check_start,loader_baseadd internal_check_start,1FEE8mov internal_check_end,internal_check_startadd internal_check_end,37//Pass internal check three times:mov counter,0LABEL_01:bp internal_check_startestobc eipbphws internal_check_end,"x"estobphwc internal_check_endinc countercmp counter,3jne LABEL_01bp internal_check_start//Find code relocation point (after VirtualAlloc call):mov code_relocation,loader_baseadd code_relocation,26AB4bp code_relocation//Find IAT obfuscators and patch them:mov IAT_obfuscator_I,loader_baseadd IAT_obfuscator_I,1ECE3mov IAT_obfuscator_II,loader_baseadd IAT_obfuscator_II,1F71Dmov [IAT_obfuscator_I],0A30E990mov [IAT_obfuscator_II],00A6E990//bp IAT_obfuscator_II//bp IAT_obfuscator_I//Find IAT jumps redirector:mov IAT_redirector,loader_baseadd IAT_redirector,1E457bp IAT_redirector//Let's see what we have here:estocmp eip,IAT_redirectorjne LABEL_02bc eipmov [IAT_redirector],90909068add IAT_redirector,1mov [IAT_redirector],caveadd IAT_redirector,4asm IAT_redirector,"RETN"stistiasm eip,"ADD EDI,DWORD PTR SS:[EBP]"stiasm eip,"PUSHAD"stiasm eip,"MOV EAX,DWORD PTR DS:[EDI]"stiasm eip,"MOV ECX,DWORD PTR DS:[ECX]"stiasm eip,"MOV DWORD PTR DS:[EAX],ECX"stiasm eip,"POPAD"stiasm eip,"INC EAX"stimov cave,eipmov [cave],90909068add cave,1add IAT_redirector,1mov [cave],IAT_redirectorstiasm eip,"RETN"estoLABEL_02:bc eipcmp eip,code_relocationjne LABEL_03ask "Enter base of original relocation section:"cmp $RESULT,0je LABEL_03mov eax,$RESULTLABEL_03:estobc eipbp internal_check_endestobc eipstirtrstirtrcmp stolen_code_start,0je LABEL_04mov [esp],stolen_code_startstifind eip,#6031C0B9????????BF????????F2AA47ABAB61C3000000000000000000000000000000#cmp $RESULT,0je ERRORfill $RESULT,13,90bp $RESULTestobc eiprtrdbsretLABEL_04:mov [esp],oepstiEXIT:dbsretERROR:msg "Error in script! Sorry :( . "ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -