Ayuda ASProtect SKE 2.1x o 2.2

Iniciado por yako-_-, 23 Julio 2010, 17:53 PM

0 Miembros y 1 Visitante están viendo este tema.

yako-_-

#10
Vale fenómeno!!!

Deseando leer ese minituto y probar el script, le tienes ganas al ASPtotec e ::)


Un saludo!!


PD:[ Thunder | CLS ] <--- Gracias por la info a ver si lo encuentro para echarle un vistazo. Un saludo!!
Para que vivir, pudiendo trabajar los Domingos

                                                                Yako-_-

tena

CITO PALABRAS DE AMERIKANO:

<amerikano> fijate que el script que hice va de maravilla
<amerikano> lo unico
<amerikano> fue que al dumpear
<amerikano> no andaba
<amerikano> y la sorpresa fue que tenia vm

Con respecto a la VM, Amerikano esta trabajando duro en ese tema desde hace un tiempo, asi que dentro de pronto esperamos ver su trabajo.

Aqui dejo el script que hizo:

var dirCall
var dirCode
var sizeCode
var cont
var dir
var dirR
var dirMagic
var dirMagic2
var dirMagic3
var asprotect
var api
var iniIat
var sizeIat
var temp
var modulo1
var modulo2
var nApi1
var nApi2

mov cont, 0
mov asprotect, 0
mov dirCode, 401000
mov sizeCode, 21000
mov iniIat, 422000
mov finIat, 4222e8
mov dirCall, 1230000
mov temp, 0

start:

eoe cont
run

cont:

    inc cont
    cmp cont, 2 //Compruebo si es la segunda excepcion

    je oep

    jmp start

oep:
    bphws 041e042, "x"    //oep
    run
   
    eob busca
   
busca:
   
    find dirCode, #e8??????00#
   
    cmp $RESULT, 0
    je fin
   

compruebaCall:
   
    mov eax, $RESULT
    add eax, [eax+1]
    add eax, 5
    cmp eax, dirCall

    je contBusqueda //Si es igual seguimos
   
    mov dirCode, $RESULT
    inc dirCode
    jmp busca
   
   
contBusqueda:

    mov dir, $RESULT

    cmp dirMagic, 0
   
    jnz contBusqueda2 //Salta si no esta todavia el hbp en la zona de asprotect
   
    findmem #508b45f8508b4510#

    cmp $RESULT,0
   
    je fin

    mov dirMagic, $RESULT
   
    bphws dirMagic, "x"    //Direccion de asprotect donde veremos las apis

   
contBusqueda2:

    cmp dirMagic2, 0
    jnz contBusqueda3

    findmem #576a008d4de0#

    cmp $RESULT,0

    je fin

    mov dirMagic2, $RESULT

    bphws dirMagic2, "x"    //Direccion de asprotect donde veremos las apis


contBusqueda3:

    cmp dirMagic3, 0
    jnz continua

    findmem #508b45f883c00450#

    cmp $RESULT,0

    je fin

    mov dirMagic3, $RESULT

    bphws dirMagic3, "x"    //Direccion de asprotect donde veremos las apis


continua:
    mov eip, dir

    eob obtieneApi
    run

obtieneApi:
   
    mov api, eax
    gn eax

    cmp eip, dirMagic
    je api
    cmp eip, dirMagic2
    je api
    cmp eip, dirMagic3
    jnz error


api:       

    mov modulo1, $RESULT_1
    mov nApi1, $RESULT_2
   
    mov ecx, iniIat
    mov eax, iniIat
   
    jmp buscaSiEsta    //Primero miramos si la api ya esta en la iat para no tener que insertarlo nuevamente

   
contObtieneValor:

    cmp ecx, finIat
    je finIat

obtieneValor:

    mov temp, [ecx]

    cmp temp, 0
    je incrementa

    gn temp

    cmp $RESULT_1, 0 //Comprueba si es un valor trucho ya que no tendria modulo asociado

    je insertaApi    //Si es trucho insertamos la api aqui
 
    add ecx, 4
   
    jmp obtieneValor

incrementa:
   add ecx,4
   jmp obtieneValor

insertaApi:
       
    mov [ecx], api
    mov dirR, ecx
   
reparaCall:
   
    mov [dir], 15ff    //reparamos el call
    mov [dir+2], dirR //Insertamos la posicion de la iat en el call   
   
    add dir, 5
    mov dirCode, dir

    jmp busca
   
buscaSiEsta:

    cmp eax, finIat
   
    je contObtieneValor //Llegamos al fin de la IAT y no hubo coincidencias
   
    mov edx, [eax]
    gn edx
   
    cmp $RESULT_2, nApi1
    mov dirR, eax
   
    je reparaCall
   
    add eax, 4
    jmp buscaSiEsta
   
error:
    msg "No se paro en ningun hbp"
    ret

finIat:
    msg "Se ha terminado la tarea"
    ret

fin:
    msg "Se ha terminado la tarea"
    ret
ret



<amerikano> solo deberias cambiarle la direccion a las que se dirigen las calls y ya.


slds

Amerikano|Cls

Gracias Tena por hacerme el favor, es que estaba fuera de casa y no me entraba el foro y bueno aqui estoy, y como bien dice tena lo dela VM es algo que estoy estudiando lo que implica que todavia laburo en ello  ;)




Mi blog:
http://amerikanocls.blogspot.com

apuromafo CLS

#13
si hablan de unpacker, deben hablar segun la version

yo de los script conozco el de volx y vi tambien sus updates, pero el mejor uso lo veo en el plugin llamado
CODEDOCTOR de hedneka,
en sus opciones tiene uno que desempaca hasta los 2.5x
yo creo que un buen olly con strong OD o phanthom mas ese plugin, creara un dumped Funcional, lo de la iat, ya es otra historia

asprotect ultimamente en los sdk esta colocando muchas funciones que se parecen a las de armadillo, o algun otro packer, no alcanzo a explicar mucho, pero se que es posible desempacar cualquier asprotect,
pero si tiene alguna encriptacion que no puede desencritpar ese programa, es porque realmente necesita de una clave valida..


saludos Apuromafo

pd:
http://tuts4you.com/download.php?view.2834
bajarlo directo:
http://tuts4you.com/request.php?2834


para mi es ollydbg con sus plugin y agregar esta dll, elegir la opcion unpacker y esta ok.

leer esto:

7) AsProtect Unpacker

This will unpack file packed by AsProtect, fix it, dump asprotect.dll and print various information to text file. Please report targets, where it fails.

Limitations:
1) Doesn't find or fix SDK functions in 1.x versions (you need to find these manually).

There are two types of these. One has a form of one or more functions called before OEP, that do various initializations. If they are not run, the program may appear expired or not run at all. Find them and run them :-)

The second type is run after OEP and hides behind GetProcAddress with special parameters, which AsProtect (if available) redirects to its own code. You need to deal with these manually.

2) in 2.30 - 2.51, there are two types of stolen functions - one is PolyOEP style, the other is virtualized; it can fix only the former, while the latter is used in AsProtect itself only

3) it doesn't find CRC or envelope checks, but it can prevent one type of envelope check, which checks for E8 in jumps to API

4) it doesn't decrypt encrypted parts or sections

5) it doesn't find serial, fix trial etc.

6) if it has overlay, it may be broken after unpacking (for example if it needs to be in fixed offset in file or if it's a certificate)

Bugs:
- doesn't work with certain 1.10 variations, I will fix this when I have time

Notes:
- after unpacking files protected by AsProtect 2.x, you may need aspr_ide.dll; get it from aspack.com and modify if needed



noticia:3/8/10

tengo un unpacked:
usando el codedoctor hay un log, pero ahi le vi un poco largo
para ayudar un poco
comienza con este pseudounpacked si aun no lo tienes desempacado:

enlace unpacked proposito educacional:
http://www.mediafire.com/?x1mmrphjtch9hjf


mas o menos asi deberia reconstruirse el EP :
cuando ya esta mas o menos des-virtualizado
Citar
009C0000   55               PUSH EBP
009C0001   8BEC             MOV EBP,ESP
009C0003   6A FF            PUSH -1
009C0005   68 08234200      PUSH 422308
009C000A   68 88934100      PUSH 419388                              ; Entry address
009C000F   64:A1 00000000   MOV EAX,DWORD PTR FS:[0]
009C0015   50               PUSH EAX
009C0016   64:8925 00000000 MOV DWORD PTR FS:[0],ESP
009C001D   83EC 58          SUB ESP,58
009C0020   53               PUSH EBX
009C0021   56               PUSH ESI
009C0022   57               PUSH EDI
009C0023   8965 E8          MOV DWORD PTR SS:[EBP-18],ESP
009C0026   FF15 40214200    CALL DWORD PTR DS:[<&KERNEL32.GetVersion>; kernel32.GetVersion
009C002C   33D2             XOR EDX,EDX
009C002E   8AD4             MOV DL,AH
009C0030   8915 14784800    MOV DWORD PTR DS:[487814],EDX
009C0036   8BC8             MOV ECX,EAX
009C0038   81E1 FF000000    AND ECX,0FF
009C003E   890D 10784800    MOV DWORD PTR DS:[487810],ECX
009C0044   C1E1 08          SHL ECX,8
009C0047   03CA             ADD ECX,EDX
009C0049   890D 0C784800    MOV DWORD PTR DS:[48780C],ECX
009C004F   C1E8 10          SHR EAX,10
009C0052   A3 08784800      MOV DWORD PTR DS:[487808],EAX
009C0057   33F6             XOR ESI,ESI
009C0059   6A 00            PUSH 0
009C005B   E8 EAB8A5FF      CALL desempac.0041B94A
009C0060   59               POP ECX
009C0061   85C0             TEST EAX,EAX
009C0063  -0F85 AD12AEFF    JNZ desempac.004A1316
009C0069   6A 1C            PUSH 1C
009C006B   E8 6606AEFF      CALL desempac.004A06D6
009C0070   59               POP ECX
009C0071   8975 FC          MOV DWORD PTR SS:[EBP-4],ESI
009C0074   E8 F4ECADFF      CALL desempac.0049ED6D
009C0079   FF15 44214200    CALL DWORD PTR DS:[<&KERNEL32.GetCommand>; kernel32.GetCommandLineA
009C007F   A3 688E4800      MOV DWORD PTR DS:[488E68],EAX
009C0084   E8 68FDADFF      CALL desempac.0049FDF1
009C0089   A3 70784800      MOV DWORD PTR DS:[487870],EAX
009C008E   E8 E111AEFF      CALL desempac.004A1274
009C0093   E8 4512AEFF      CALL desempac.004A12DD
009C0098   E8 6A04AEFF      CALL desempac.004A0507
009C009D   8975 D0          MOV DWORD PTR SS:[EBP-30],ESI
009C00A0   8D45 A4          LEA EAX,DWORD PTR SS:[EBP-5C]
009C00A3   50               PUSH EAX
009C00A4   FF15 48214200    CALL DWORD PTR DS:[<&KERNEL32.GetStartup>; kernel32.GetStartupInfoA
009C00AA   E8 160EAEFF      CALL desempac.004A0EC5
009C00AF   8945 9C          MOV DWORD PTR SS:[EBP-64],EAX
009C00B2   F645 D0 01       TEST BYTE PTR SS:[EBP-30],1
009C00B6  -0F84 17F9ADFF    JE desempac.0049F9D3
009C00BC   0FB745 D4        MOVZX EAX,WORD PTR SS:[EBP-2C]
009C00C0   50               PUSH EAX
009C00C1   FF75 9C          PUSH DWORD PTR SS:[EBP-64]
009C00C4   56               PUSH ESI
009C00C5   56               PUSH ESI
009C00C6   FF15 4C214200    CALL DWORD PTR DS:[<&KERNEL32.GetModuleH>; kernel32.GetModuleHandleA
009C00CC   50               PUSH EAX
009C00CD   E8 B70EAEFF      CALL desempac.004A0F89
009C00D2   8945 A0          MOV DWORD PTR SS:[EBP-60],EAX
009C00D5   50               PUSH EAX
009C00D6   E8 DD90A5FF      CALL desempac.004191B8
009C00DB   8B45 EC          MOV EAX,DWORD PTR SS:[EBP-14]
009C00DE   8B08             MOV ECX,DWORD PTR DS:[EAX]
009C00E0   8B09             MOV ECX,DWORD PTR DS:[ECX]
009C00E2   894D 98          MOV DWORD PTR SS:[EBP-68],ECX
009C00E5   50               PUSH EAX
009C00E6   51               PUSH ECX
009C00E7   E8 9ECFA5FF      CALL desempac.0041D08A
009C00EC   59               POP ECX
009C00ED   59               POP ECX
009C00EE   C3               RETN

apuromafo CLS

#14
para borrar..

MCKSys Argentina

U!!!! Pero qué pedazo de log!!!

ja,ja,ja,ja,ja...  ;D
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


apuromafo CLS

Cita de: MCKSys Argentina en  3 Agosto 2010, 19:36 PM
U!!!! Pero qué pedazo de log!!!

ja,ja,ja,ja,ja...  ;D
sip, era muy largo,
prefiero enviar el unpacked , mas su log , mas la dll que desempacaba de memoria del asprotect mas la dll que necesita para funcionar, pues no estan parchado los enveloped check que son los skd del programa

por lo demas, creo que desempacado la pregunta es otra, como va a arreglar el exe para que se vea mas estetico..

saludos Apuromafo

yako-_-

Buenas!!

Gracias por curraroslo así voy a probar la dll y los scripts a ver si lo desempaqueto y cuando este listo el tute de Amerikano|Cls lo hago manualmente  :¬¬


Un saludo y Gracias!!

Pd: lo de la VM debe ser engorroso yo nada mas abrirlo en la VM se me cala.
Para que vivir, pudiendo trabajar los Domingos

                                                                Yako-_-

Amerikano|Cls

Puedo jurar que ya habia respondido a este post pero bueno  ;-) ;-) ... Lo de la vm es un trabajo que va paso a paso pero firme  :xD




Mi blog:
http://amerikanocls.blogspot.com

yako-_-

Buenas!!


OK Amerikano|Cls con lo de la VM tú no comentaste nada  :¬¬

Mas que nada era por recordarte el tema del tute...     :silbar:

Un saludo!!
Para que vivir, pudiendo trabajar los Domingos

                                                                Yako-_-