Raised This Month: $51 Target: $400
 12% 

[ES] Orpheu: Reemplazar strings en la memoria.


  
 
 
Thread Tools Display Modes
Author Message
fezh
Veteran Member
Join Date: Dec 2008
Location: BANNED
Old 07-02-2010 , 11:36   [ES] Orpheu: Reemplazar strings en la memoria.
#1

Rant:
El thread original lo pueden encontrar acá. Esto es solo la traducción.


Esto es un mini-tutorial para demostrar como usar Orpheu para reemplazar strings en la memoria. Pueden usar esta funcionalidad para:
  1. Cambiar un texto a algo que quieras.
  2. Reemplazar models o sonidos eficientemente.
  3. Más cosas.

Primero, deben descargar este software:
http://www.hex-rays.com/idapro/idadownfreeware.htm

Luego de eso deben instalarlo y abrirlo.

[IMG]http://img231.**************/img231/6339/45340387.png[/IMG]

Presionen New.

[IMG]http://img12.**************/img12/8282/79514323.png[/IMG]

PE Dynamic Library
OK


Ahora: para ver las strings del:
  • Engine, abran el archivo swds.dll de la carpeta del servidor dedicado.
  • Mod, abran el archivo mod/dlls/mp.dll de la carpeta del servidor dedicado.

Para este ejemplo voy a usar la librería del engine.

[IMG]http://img191.**************/img191/5043/29492852.png[/IMG]

View
Open subviews
Strings


Y tendrán una lista de las strings que usa la librería.

Para este ejemplo voy a usar:
Code:
#      name userid uniqueid frag time ping loss adr\n
Primero necesitamos un archivo para identificar la memoria que estamos utilizando. Debe lucir así:
Code:
{
    "name"        : "engineString",
    "library"     : "engine",
    "type"        : "string",
    "memoryType"  : "data"
}
El "name" (nombre) es a elección, la "library" (librería) es donde se encuentra (engine o mod), el "type" (tipo) es "string" para este tutorial y "memoryType" lo puedes chequear en la tabla de strings que tienes en IDA. De esta forma:
[IMG]http://img46.**************/img46/883/71307609.png[/IMG]

data es "data"
rdata es "rodata"
text es "code"

Este campo esta destinado a garantizar la integridad después de jugar con la memoria, pero es sólo útil en Linux. De cualquier forma, debes proveer un tipo (type) válido.

Ahora, guarda el archivo en con el contenido descrito arriba en:
configs/orpheu/memory y ponle el nombre que quieras.

Para usarlo deberías hacer algo como:
PHP Code:
    #include <amxmodx>
    #include <orpheu_memory>
    
    
public plugin_precache()
    {
        
OrpheuMemoryReplace("engineString",0,"#      name userid uniqueid frag time ping loss adr^n","# Arkshine loves Connor^n")
    } 
Tengan en cuenta que al hacer esto la nueva string no debe ser más larga que la original.

Ahora, cuando este plugin esté corriendo, si los usuarios de tu servidor usan el comando status verán:
[IMG]http://img205.**************/img205/184/60858560.png[/IMG]

Quote:
Originally Posted by joaquimandrade View Post
Un ejemplo más útil (reemplaza el sonido cuando presionas +USE sin usar nada):

Code:
{
    "name"        : "modString",
    "library"     : "mod",
    "type"        : "string",
    "memoryType"  : "data"
}
PHP Code:
    #include <amxmodx>
    #include <orpheu_memory>
    
    
public plugin_precache()
    {
        
OrpheuMemoryReplace("modString",0,"common/wpn_denyselect.wav","common/bodysplat.wav")
    } 
Quote:
Originally Posted by Arkshine View Post
El code para cambiar models de armas es ahora mucho más eficiente:

Code:
{
    "name"        : "weaponModels",
    "library"     : "mod",
    "type"        : "string",
    "memoryType"  : "data"
}

Code:
#include <amxmodx> #include <orpheu_memory>     public plugin_precache() {      OrpheuMemoryReplace( "weaponModels", 0, "models/v_hegrenade.mdl", "models/v_hegrenad.mdl" );      OrpheuMemoryReplace( "weaponModels", 0, "models/w_m4a1.mdl", "models/w_m4a2.mdl" ); }

Los sonidos de las armas no funcionarán ya que son manejados por el cliente.
__________________
"There is no knowledge, that is not power"

Last edited by fezh; 07-02-2010 at 15:48.
fezh is offline
lucas_7_94
Leche Loco
Join Date: Mar 2009
Location: Argentina
Old 07-02-2010 , 11:55   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#2

esta recontra zarpado
__________________
ATWWMH - MiniDuels
Madness is like gravity, just need a little push.
lucas_7_94 is offline
Send a message via Skype™ to lucas_7_94
Kiske
Veteran Member
Join Date: May 2009
Old 07-02-2010 , 11:56   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#3

Aparte de usar el: OrpheuMemoryReplace, debo usar precache_model o está todo ahí ?.
__________________

Kiske is offline
Send a message via Skype™ to Kiske
g_often
Senior Member
Join Date: Jan 2010
Location: In your mind
Old 07-02-2010 , 12:00   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#4

Bien ahí (:
__________________
Reality is wrong, dreams are for real.
g_often is offline
Old 07-02-2010, 13:42
Javivi
This message has been deleted by Javivi. Reason: Esta mal D:
meTaLiCroSS
Gaze Upon My Hat
Join Date: Feb 2009
Location: Viña del Mar, Chile
Old 07-02-2010 , 14:03   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#5

Lo reemplasa todo, es como en el AMXx Studio con Ctrl+R y fue.
__________________
Quote:
Originally Posted by joropito View Post
You're right Metalicross
meTaLiCroSS is offline
Old 07-02-2010, 15:51
concha_de_insekto
This message has been deleted by Kiske.
Kiske
Veteran Member
Join Date: May 2009
Old 07-02-2010 , 16:22   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#6

Quote:
Originally Posted by meTaLiCroSS View Post
Lo reemplasa todo, es como en el AMXx Studio con Ctrl+R y fue.
Ok, gracias.
__________________

Kiske is offline
Send a message via Skype™ to Kiske
Starsailor
horrible hahah
Join Date: Aug 2008
Location: Buenos Aires
Old 07-02-2010 , 17:48   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#7

La version del orpheu que esta posteada en AM, no soporta el tipo de datos "string", por lo que probablemente ese plugin no ande

Quote:
List of supported data types:
"bool"
"byte"
"long"
"CBaseEntity *"
"char *"
"edict_s *"
"float"
"Vector *"
"CMBaseMonster *"
"char"
"short"
"entvars_s *"
__________________
Find my plugins here..

Ex - Spanish Moderator.
Starsailor is offline
fezh
Veteran Member
Join Date: Dec 2008
Location: BANNED
Old 07-02-2010 , 17:56   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#8

Funciona perfectamente. Y estoy usando la versión más nueva, por cierto.
Code:
] amxx modules
Currently loaded modules:
      name                    version     author               status     
 [ 1] Orpheu                  2.3a        joaquimandrade       running    
 [ 2] Fun                     1.8.1.3746  AMX Mod X Dev Team   running    
 [ 3] CStrike                 1.8.1.3746  AMX Mod X Dev Team   running    
 [ 4] CSX                     1.8.1.3746  AMX Mod X Dev Team   running    
4 modules, 4 correct
__________________
"There is no knowledge, that is not power"
fezh is offline
Starsailor
horrible hahah
Join Date: Aug 2008
Location: Buenos Aires
Old 07-02-2010 , 17:57   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#9

Quote:
Originally Posted by fezh View Post
Funciona perfectamente. Y estoy usando la versión más nueva, por cierto.
Code:
] amxx modules
Currently loaded modules:
      name                    version     author               status     
 [ 1] Orpheu                  2.3a        joaquimandrade       running    
 [ 2] Fun                     1.8.1.3746  AMX Mod X Dev Team   running    
 [ 3] CStrike                 1.8.1.3746  AMX Mod X Dev Team   running    
 [ 4] CSX                     1.8.1.3746  AMX Mod X Dev Team   running    
4 modules, 4 correct
Entonces le falto actualizar esa lista :$
__________________
Find my plugins here..

Ex - Spanish Moderator.
Starsailor is offline
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 07-02-2010 , 18:04   Re: [ES] Orpheu: Reemplazar strings en la memoria.
#10

Si, porque antes era char * y ahora string.

PD: No tenes que hacer precache ni pev_model con este metodo.
01101101 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:53.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode