📄 asprotect 2.0x fix iat with import elimination optimized.txt
字号:
//copyright by Pnluck 20005 pnluck@virgilio.it//if u use this script for write a tutorial, u can put me in thankses :D//i must to thanks MaRKuS-DJM and KaGra for their info at http://forum.exetools.com/showthread.php?t=7545//modified and optimized by D3XT3R for the recursive capabilities////This script will ONLY run on ODBGScript v1.41 or higher. If you try to use this with any other plugin or a lower version DO NOT//expect me to give you any support what so ever.var $STDvar x_addr //addr originalevar x_LoadLib //addr LoadLibraryAvar x_AddrApivar data_sectvar end_datavar x_eaxvar govar xvarvar strvar xvar str_eaxvar str_edivar sav_eaxvar sav_ecxvar sav_edxvar sav_ebxvar sav_espvar sav_ebpvar sav_esivar sav_edivar save_datavar confrontavar iat_sectionvar save_dllvar OEPvar save_iatsvar save_iatevar prevcallvar calldestvar checkaddvar endaddvar fincall//chiedo l'addr della .data sectionreset:mov OEP,eipmsgyn "Is the IAT of this PE corrupt?"cmp $RESULT,0je start_stdgmi eip,CODEBASEmov prevcall, $RESULTask "Enter the address of section where is the IAT:"mov iat_section,$RESULTmov xvar,$RESULTmov str,1500eval "IAT Corrupt: Yes, Code section: {prevcall}, IAT section: {iat_section}, Is this correct?"msgyn $RESULTcmp $RESULT,0je reset//find the start of iatinizio:mov x,[iat_section]cmp x,0je do_jmpgn xcmp $RESULT_1,0jne trovato1mov [iat_section],0do_jmp:add iat_section,4jmp iniziotrovato1:mov save_iats,iat_sectioneval "The iat start at {iat_section}"MSG $RESULT//find the end of iatmov iat_section,stradd iat_section,xvarinizio1:mov x,[iat_section]cmp x,0je do_jmp1gn xcmp $RESULT_1,0jne pre_startmov [iat_section],0do_jmp1:sub iat_section,4jmp inizio1pre_start:mov save_iate,iat_sectionadd iat_section,4mov data_sect,iat_section//ora cancello dall'iat gli addr erratierase_garbage:mov x,[save_iats]gn xcmp $RESULT_1,0jne add_addrmov [save_iats],0add_addr:cmp save_iats,save_iateje getcalladd save_iats,4jmp erase_garbagegetcall:ask "Enter the AIP Call destination address:"mov endadd,$RESULTask "Enter the address of the last call to repair:"mov fincall,$RESULTjmp start_procsstart_procs:eval "AIP call destination: {endadd}, Final call: {fincall}. Is this correct?"msgyn $RESULTcmp $RESULT,1jne getcallstart_proc://domando che call devo analizzareadd prevcall,1cmp prevcall, fincallja finefind prevcall, #e8????????#cmp $RESULT,0je finemov prevcall,$RESULTmov x_addr,$RESULT mov eip,$RESULTmov checkadd,eipadd checkadd,1mov calldest, [checkadd]add calldest, eipadd calldest,5cmp calldest,endaddjne start_procGPA "LoadLibraryA","kernel32.dll"cmp $RESULT,0je exitmov x_LoadLib,$RESULTadd x_LoadLib,bbp x_LoadLib //setto bp al je di LoadLibraryArunbc x_LoadLib//al bp//verifico secon i egistri
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -