📄 activemark 5.4x level 2 ep finder + fix crc.txt
字号:
/*ActiveMark unpacking script by russiankidNote: check all execptions in Debuggin options.tested with following AM versions:5.42.1218 (granny in paradise, triblettes, xt rally, lab project deluxe, )5.41.1210 (beetle bomp, the bug factor, jewel miner,)5.4.1171 (fortune tiles gold,)5.31.1140 (mouse trophy,)5.3.1078 (capitalism 2, chuzzle deluxe,)does not fully work:5.2.1006 (mindrover,) ;AM selfcheck could not be found because of messed level 2 code, the rest is OK*/var LoadLibraryAvar RetAddrvar JumpAddrvar FixAddrvar AtEIPvar CurEIPdbhgpa "LoadLibraryA","kernel32.dll"find $RESULT,#C20400#mov LoadLibraryA,$RESULTbp LoadLibraryAestoestobc LoadLibraryAesti/*lets find zero level end*/find eip,#90000000000000000000000000000000#mov JumpAddr,$RESULTcmp JumpAddr,0je Level0EndNotFoundNextByte:dec JumpAddrmov AtEIP,[JumpAddr]and AtEIP,000000FFcmp AtEIP,000000C3jne NextBytebp JumpAddrestobc JumpAddresti/*now we can be at level 1 or at level 2. lets find which one.*/CheckForSecondLayer:find eip,#54646E41#mov FixAddr,$RESULTcmp FixAddr,0je Level2NotFound/*we finally at level 2. we can dump here.*/cmt eip, "This will be new entry point."sub FixAddr,8mov AtEIP,[FixAddr]and AtEIP,000000FFcmp AtEIP,00000074jne FixAddrNotFoundinc FixAddrmov [FixAddr],#00#dec FixAddrcmt FixAddr, "ActiveMark selfcheck fixed."ret/*we are at level 1. lets find its end.*/Level2NotFound:find eip,#6661FF25#mov JumpAddr,$RESULTcmp JumpAddr,0je MessedCodeadd JumpAddr,2bp JumpAddrestobc JumpAddrestiFoundSecondLayer:cmt eip, "This will be new entry point."find eip,#54646E41#mov FixAddr,$RESULTcmp FixAddr,0je FixAddrNotFoundsub FixAddr,8mov AtEIP,[FixAddr]and AtEIP,000000FFcmp AtEIP,00000074jne FixAddrNotFoundinc FixAddrmov [FixAddr],#00#dec FixAddrcmt FixAddr, "ActiveMark selfcheck fixed."ret/*code is messed up. try to find end of leve 1 anyway.*/MessedCode:find eip,#6661#mov JumpAddr,$RESULTcmp JumpAddr,0je Level1EndNotFoundbp JumpAddrestobc JumpAddrestimov CurEIP,eiptocnd "eip < CurEIP"estimov AtEIP,[eip]and AtEIP,0000FFFFcmp AtEIP,00006066je FoundSecondLayerjmp Level1EndNotFoundLevel0EndNotFound:msg "Could not find level 0 end. Stopped on LoadLibraryA call."retLevel1EndNotFound:msg "Could not find level 1 end. Stopped at level 1 start."retFixAddrNotFound:msg "Could not find AM selfcheck bytes. Stopped at level 2 start (new EP)."ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -