Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Иōҳ

#441
disculpa por no entenderte, pero creo que debistes resaltar la cadena a pasar en primera instancia.. en ascii o talvez fue un despiste mio de no prestar atencion a tu cadena en hex sea cual sea, esto me funciono, chequelo.  :xD

Código (asm) [Seleccionar]
00401000 >    33DB                    XOR EBX, EBX
00401002      53                      PUSH EBX
00401003      68 45786563             PUSH 63657845
00401008      C74424 FD 57696E45      MOV DWORD PTR SS:[ESP-3], 456E6957
00401010      8D5C24 FD               LEA EBX, DWORD PTR SS:[ESP-3]


pd: Me esta pareciendo interesante codear una shellcode eh! jeje (como nunca lo he hecho X)

pd2: el code creo que esta un poco ortodoxo, fijate si necesitas reservar espacio en la pila.. ya que estoy moviendo valores directamente, se puede mejorar, pero ya tienes la idea :).

Salu2!
#442
lo sustituyo porque ebx vale 0 y lo que estas pasando es un valor nullo a la pila para que sea el zero terminator, el push ebx envia a la 00000000 a la 'pila', luego le pasas las cadena, al final solo te queda debuggear si al final de esta subrutina queda desbalanceada la pila... para balancearlo. no sabria decirte con exactitud si desbalancea la pila. =/

Dato: TODA cadena tiene que tener un zero terminator que indica el final.

Salu2!
#443
Cita de: Karcrack en 28 Marzo 2011, 16:17 PM
Una cadena ASCII no puede tener un byte nulo por el medio... ya que la cadena ASCII se mida hasta la aparicion de un byte nulo... Y si tu "cadena" tiene bytes nulos sencillamente xorea todo el numero y lo vuelves a xorear una vez en la pila... seria algo asi:
push 0xAABBCCDD ;Caracteres xoreados con nMagic para quitar 00s
xor [esp], nMagic ;Vuelves a xorear para dejar como estaba


me parece que el se refiere a otra cosa....
Código (asm) [Seleccionar]

00401002      53            PUSH EBX

esto reemplaza el opcode null osea el zero terminator a eso te refieres?

osea

Código (asm) [Seleccionar]
lstrCadena db "Hola",0

te refieres a ese 0 el zero terminator?.... si es así con lo que te dice sagrini se hace el push ebx pone el zero terminator en la pila.... si no es asi.. pon como es tu cadena! y nosotros te podremos ayudar( que no sea en hex si no en ascii).

Salu2!
#444
Código (asm) [Seleccionar]
00401000 >    33DB          XOR EBX, EBX
00401002      53            PUSH EBX
00401003      68 44434241   PUSH 41424344
00401008      68 44434241   PUSH 41424344
0040100D      8BDC          MOV EBX, ESP


pues no veo ningun opcode null




#445
Cita de: [Zero] en 24 Marzo 2011, 21:14 PM
Dale permisos de ejecución con VirtualProtect a ver si así funciona, si funciona luego puedes compilar de forma que te lo meta todo en la sección .text.

Saludos

en la hora del linkeo le tienes que dar permisos a la sección .text

/SECTION:.text,REW

yo uso radasm y como no se puede usar la "," se usa "|"

aqui te lo dejo si te sirve:

5,O,$B\LINK.EXE /SECTION:.text|REW /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /LIBPATH:"$L" /OUT:"$5",3

Salu2!
#446
Código (asm) [Seleccionar]

;00402044  4C 6F 61 64 4C 69 62 72  LoadLibr
;0040204C  61 72 79 41 00           aryA.

mov ebp,esp; ebp puntero al stack
sub esp, 0Dh; reservamos espacio
xor ecx,ecx
mov byte ptr [ebp - 0Dh], 4Ch
mov byte ptr [ebp - 0Ch], 6Fh
mov byte ptr [ebp - 0Bh], 61h
mov byte ptr [ebp - 0Ah], 64h
mov byte ptr [ebp - 09h], 4Ch
mov byte ptr [ebp - 08h], 69h
mov byte ptr [ebp - 07h], 62h
mov byte ptr [ebp - 06h], 72h
mov byte ptr [ebp - 05h], 61h
mov byte ptr [ebp - 04h], 72h
mov byte ptr [ebp - 03h], 79h
mov byte ptr [ebp - 02h], 41h
mov byte ptr [ebp - 01h], cl
lea ecx, dword ptr [ebp - 0Dh]

push ecx
push edx; BaseKernel
call ebx; GPA
add esp, 0Dh; Balanceamos la pila


pues aqui te dejo un ejemplo que he usado y comprabado, mas que explicarte ahi tienes la respuesta  ;D

Salu2!
#447
CitarEn el caso que nos interesa, el aprendizaje, posiblemente sea más interesante C o C++. Los detalles a bajo nivel ayudan para cuando subes a nivel alto y sigues necesitando ese chute de velocidad, poder poner código de un nivel inferior.
(hablo de nivel como próximidad a la máquina como tal).

hablas de usar inline assembly o.O, si es así pierdes portabilidad. :)

Cita de: Tyrz en 22 Marzo 2011, 14:35 PM
Conste que no he leido las demas respuestas ya que voy algo mal de tiempo.

Yo programo en JAVA, basicamente porque uso ubuntu y me tira bastante el tema de la portabilidad. Para buscar curro (al menos en mi islita) es mucho mas facil como programador java, es más nunca he visto un anuncio de trabajo que busque programador en c++.

Aparte de esto, he de reconocer que me dan envidia los programadores c++ porque pueden hacer cosas malas. (Troyanos, Botnets, blabla canela!).

Se que no ayudo mucho pero algo es algo jaja

Suete!
con java tambien se puede :)

Salu2!
#448
yo uso masm y si igual que el fasm el ensamblador se encarga de hacer la chamba :)
#449
o ps claro que se ve!, en el main vas a haber una llamada hacia la funcion... y si la seguis encontraras alli la funcion por ejemplo printf... y claro en el mismo main es donde le dan los parametros a la pila.

y para llegar al main solo pongo un BP al iniciar la funcion y ya estas parado alli =/

Salu2!
#450
y cuando comienza el grupo2?, xD, yo creo que deberian con anticipacion los textos a enseñar del tema1 para asi familiarizarnos con el tema... y sea mas facil y rapido el aprendisaje y el tiempo a usar en ello. :)

Salu2!