////////////////////////////////////////////////////////// // !EP Exe Pack (Software Compress) 1.2 // Get Thunk Table Addresses, Keep Original Thunk Table, // Calculate Thunk Table Size, Find OEP // Written by Fungus // Date: 2006-31-10 ////////////////////////////////////////////////////////// var addr1 // temp variable for thunk table origin var addr2 // temp variable for think table end var org // variable for thunk table origin var end // variable for thunk table end var size // variable for thunk table size var oep // variable for OEP var temp eob getthunk findop eip,#61# bphws $RESULT,"x" mov temp,$RESULT run getthunk: // get thunk table origin, end, and size eob dothunk bphwc temp findop eip,#0305# bphws $RESULT,"x" mov temp,$RESULT run dothunk: eob findoep bphwc temp sto mov addr1,eax // get thunk table origin mov org,eax sto sto sto sto sto sto sto sto sto mov addr2,ebx // get thunk table end mov end,ebx sub addr2,addr1 // calculate size mov size,addr2 find eip,#8907# fill $RESULT,2,90 // keep original thunk table find eip,#61# bphws $RESULT,"x" mov temp,$RESULT run findoep: // find OEP bphwc temp sto sto sti mov oep,eip eval "OEP = {oep}" msg $RESULT eval "Start of Thunk Table = {org}" msg $RESULT eval "End of Thunk Table = {end}" msg $RESULT eval "Size of Thunk Table = {size}" msg $RESULT ret /end