|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Aug 2009
Messaggi: 3
|
help
ragazzi salve a tutti ho un problema vorri capire un file dissemblato con ida e da li ricostruire i comandi e metterli in un utility creata in vb6 mi date una mano?
|
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Aug 2009
Messaggi: 3
|
dai ragazzi mi dite che sigifica questo?
RAM:203082A4 .set var_108, -0x108 RAM:203082A4 .set var_104, -0x104 RAM:203082A4 .set var_100, -0x100 RAM:203082A4 .set var_FC, -0xFC RAM:203082A4 .set var_F8, -0xF8 RAM:203082A4 .set var_E0, -0xE0 RAM:203082A4 .set var_88, -0x88 RAM:203082A4 .set var_10, -0x10 RAM:203082A4 .set var_C, -0xC RAM:203082A4 .set var_8, -8 RAM:203082A4 .set var_4, -4 RAM:203082A4 .set arg_4, 4 RAM:203082A4 RAM:203082A4 stwu %sp, -0x110(%sp) # Store Word with Update RAM:203082A8 mflr %r0 # Move from link register RAM:203082AC stw %r28, 0x110+var_10(%sp) # Store Word RAM:203082B0 stw %r29, 0x110+var_C(%sp) # Store Word RAM:203082B4 stw %r30, 0x110+var_8(%sp) # Store Word RAM:203082B8 stw %r31, 0x110+var_4(%sp) # Store Word RAM:203082BC stw %r0, 0x110+arg_4(%sp) # Store Word RAM:203082C0 mr %r31, %r3 # Move Register RAM:203082C4 li %r29, 0 # Load Immediate RAM:203082C8 li %r11, 0 # Load Immediate RAM:203082CC stw %r11, 0x110+var_108(%sp) # Store Word RAM:203082D0 li %r10, 0 # Load Immediate RAM:203082D4 stw %r10, 0x110+var_104(%sp) # Store Word RAM:203082D8 addi %r9, %sp, 0x110+var_E0 # Add Immediate RAM:203082DC stw %r9, 0x110+var_100(%sp) # Store Word RAM:203082E0 li %r12, 0 # Load Immediate RAM:203082E4 stb %r12, 0x110+var_FC(%sp) # Store Byte RAM:203082E8 li %r11, 2 # Load Immediate RAM:203082EC stw %r11, 0xC8(%r31) # Store Word RAM:203082F0 addi %r4, %sp, 0x110+var_100 # Add Immediate RAM:203082F4 lis %r5, ((dword_20308650+0x10000)@h) # 0xD151D000 RAM:203082F8 subi %r5, %r5, 0x79B0 # dword_20308650 # Subtract Immediate RAM:203082FC mr %r3, %r31 # Move Register RAM:20308300 bl send_a0ca0000 # Branch RAM:20308304 mr %r30, %r3 # Move Register RAM:20308308 cmpwi %r30, 0 # Compare Word Immediate RAM:2030830C bne loc_20308410 # Branch if not equal RAM:20308310 lbz %r12, 0x110+var_FC(%sp) # Load Byte and Zero RAM:20308314 cmpwi %r12, 0 # Compare Word Immediate RAM:20308318 beq loc_20308410 # Branch if equal RAM:2030831C bl sub_202C5E1C # Branch RAM:20308320 addi %r4, %sp, 0x110+var_88 # Add Immediate RAM:20308324 addi %r7, %sp, 0x110+var_108 # Add Immediate RAM:20308328 addi %r8, %sp, 0x110+var_104 # Add Immediate RAM:2030832C li %r5, 0x78 # 'x' # Load Immediate RAM:20308330 li %r6, 1 # Load Immediate RAM:20308334 bl sub_202C60A8 # Branch RAM:20308338 mr %r29, %r3 # Move Register RAM:2030833C clrlwi %r11, %r29, 24 # Clear Left Immediate RAM:20308340 cmpwi %r11, 0 # Compare Word Immediate RAM:20308344 beq loc_203083A8 # Branch if equal RAM:20308348 addi %r3, %r31, 0xD4 # Add Immediate RAM:2030834C addi %r4, %sp, 0x110+var_E0 # Add Immediate RAM:20308350 addi %r5, %sp, 0x110+var_F8 # Add Immediate RAM:20308354 bl sub_202F45AC # Branch RAM:20308358 mr %r29, %r3 # Move Register RAM:2030835C clrlwi %r9, %r29, 24 # Clear Left Immediate RAM:20308360 cmpwi %r9, 0 # Compare Word Immediate RAM:20308364 beq loc_2030839C # Branch if equal RAM:20308368 addi %r4, %sp, 0x110+var_F8 # Add Immediate RAM:2030836C mr %r3, %r31 # Move Register RAM:20308370 bl sub_202CFC94 # Branch RAM:20308374 lwz %r11, 0x368(%r31) # Load Word and Zero RAM:20308378 lwz %r10, 0x110+var_108(%sp) # Load Word and Zero RAM:2030837C cmplw %r11, %r10 # Compare Logical Word RAM:20308380 bne loc_20308394 # Branch if not equal RAM:20308384 lwz %r12, 0x390(%r31) # Load Word and Zero RAM:20308388 lwz %r11, 0x110+var_104(%sp) # Load Word and Zero RAM:2030838C cmplw %r12, %r11 # Compare Logical Word RAM:20308390 beq loc_203083A8 # Branch if equal |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jun 2007
Città: Lecco
Messaggi: 250
|
Oddiodovresti prima sapere quali registri sono adibiti a ricevere i vari parametri delle funzioni e creare una specie di mappa dello stack... a quanto ricordo le funzioni vengono chiamate con store dei parametri in appositi registri, store della posizione attuale pure in un apposito registro, jump all'indirizzo della funzione, esecuzione da lì, store del risultato nell'ennesimo apposito registro, read dello stack pointer dal valore precedentemente memorizzato e nuovo jump. Il registro %sp a questo punto credo stia per stack pointer, ovvero il punto che marca "dove sei ora" nell'esecuzione del programma, i vari %r## saranno gli altri registri, numerati... per il resto mi pare un compito piuttosto ingrato
__________________
Asus P5Q PRO - Intel Core 2 Duo E8400 @3.2 GHz - 4GB G. Skill DDR2-1066 CL5 - Powercolor Radeon HD6870 PCS+ 1GB @940/5500 MHz - 200GB Maxtor SATAII + 1TB LaCie USB - LC-POWER Metatron Hyperion 700W PSU - Samsung XL2370 23'' Full HD LED Firmate - Per la sicurezza di noi tutti | Progetto Traduzione "The Void" |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:16.











Oddio








