Jump to content

Naelson Goncalves Saraiva

Membros
  • Posts

    10
  • Joined

  • Last visited

Posts posted by Naelson Goncalves Saraiva

  1. Microsoft (R) Macro Assembler Version 6.14.8444
    Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.
    
     Assembling: C:\masm32\hello.asm
    C:\masm32\hello.asm(3) : error A2008: syntax error : .
    C:\masm32\hello.asm(4) : error A2085: instruction or register not accepted in cu
    rrent CPU mode
    
    ***********
    ASCII build
    ***********
    
    \masm32\include\windows.inc(78) : error A2119: language type must be specified
    \masm32\include\windows.inc(79) : error A2119: language type must be specified
    \masm32\include\windows.inc(80) : error A2119: language type must be specified
    \masm32\include\windows.inc(81) : error A2119: language type must be specified
    \masm32\include\windows.inc(82) : error A2119: language type must be specified
    \masm32\include\windows.inc(83) : error A2119: language type must be specified
    \masm32\include\windows.inc(84) : error A2119: language type must be specified
    \masm32\include\windows.inc(85) : error A2119: language type must be specified
    \masm32\include\windows.inc(86) : error A2119: language type must be specified
    \masm32\include\windows.inc(87) : error A2119: language type must be specified
    \masm32\include\windows.inc(88) : error A2119: language type must be specified
    \masm32\include\windows.inc(89) : error A2119: language type must be specified
    \masm32\include\windows.inc(90) : error A2119: language type must be specified
    \masm32\include\windows.inc(91) : error A2119: language type must be specified
    \masm32\include\windows.inc(92) : error A2119: language type must be specified
    \masm32\include\windows.inc(93) : error A2119: language type must be specified
    \masm32\include\windows.inc(94) : error A2119: language type must be specified
    \masm32\include\windows.inc(95) : error A2119: language type must be specified
    \masm32\include\windows.inc(96) : error A2119: language type must be specified
    \masm32\include\windows.inc(97) : error A2119: language type must be specified
    \masm32\include\windows.inc(98) : error A2119: language type must be specified
    \masm32\include\windows.inc(99) : error A2119: language type must be specified
    \masm32\include\windows.inc(100) : error A2119: language type must be specified
    \masm32\include\windows.inc(101) : error A2119: language type must be specified
    \masm32\include\windows.inc(102) : error A2119: language type must be specified
    C:\masm32\hello.asm(13) : error A2013: .MODEL must precede this directive
    C:\masm32\hello.asm(14) : error A2034: must be in segment block
    C:\masm32\hello.asm(15) : error A2034: must be in segment block
    C:\masm32\hello.asm(17) : error A2013: .MODEL must precede this directive
    C:\masm32\hello.asm(18) : error A2034: must be in segment block
    C:\masm32\hello.asm(19) : error A2034: must be in segment block
    C:\masm32\hello.asm(19) : error A2006: undefined symbol : szCaption
    C:\masm32\hello.asm(19) : error A2114: INVOKE argument type mismatch : argument
    : 3
    C:\masm32\hello.asm(19) : error A2006: undefined symbol : szText
    C:\masm32\hello.asm(19) : error A2114: INVOKE argument type mismatch : argument
    : 2
    C:\masm32\hello.asm(20) : error A2034: must be in segment block
    C:\masm32\hello.asm(21) : error A2006: undefined symbol : start
    C:\masm32\hello.asm(21) : error A2148: invalid symbol type in expression : start
    
    _
    Assembly Error
    Press any key to continue . . .

    Tive esse problema uma semana atrás e vou tentar montar isto novamente, agora com a cabeça mais fresca, Os error que tive usando instruções passada por você!

    Meu sistema windows 7 64 

    Erro apos executar botão Assemble & Link

    Sera que o ERRO esta nesta linha?  C:\masm32\hello.asm(3) : error A2008: syntax error : . 

    Algo relacionado ao ponto (.)?

     

  2. #include <iostream>
    #include <string>
    #include <string.h>
    
    using namespace std;
    
    void function(){
    	int x = 50;
    	char noName[] = {"BlaBlaBla"};
    	
    	if(x > 0){
    		x = 6;
          
    		switch(x){
    		case 6:
    			const int sizeCaracter = strlen(noName);
    			
    			for(int i = 0;i<sizeCaracter;i++)
    			cout<<noName[i]<<endl;
    			break;
      	   }
       }	
    }
    int main() {
    	
        function();
    	getchar();
    	return 0;
    }
    public _Z8functionv
    _Z8functionv proc near
    
    var_20= qword ptr -20h
    var_18= word ptr -18h
    var_C= dword ptr -0Ch
    var_8= dword ptr -8
    var_4= dword ptr -4
    
    push    rbp
    mov     rbp, rsp
    sub     rsp, 40h
    mov     [rbp+var_8], 32h
    mov     rax, 6C426C6142616C42h
    mov     [rbp+var_20], rax
    mov     [rbp+var_18], 61h
    cmp     [rbp+var_8], 0
    jle     short loc_4015B9

    Bom acho que forum deveria ter uma área de duvidas para não misturar com a área respondida, mas vou deixa mais esta duvida que tive. 

    Quando arrastei primeiro exe para  debugger a quantidade de variáveis era a mesma, mas quando se cria vetores  por que apareceu tantas, 4 só do mesmo tipo são 4 dword por que?

  3. Fiz isto, porem isto só roda compilado no visual studio 2005, fiz algumas variáveis no dev c++ e depois abrindo com ida pro parece que compilador mais moderno facilita muito, ate nome as funções tem com exe da atualidade. 
     

    Ainda to tendo algumas duvidas sobre registradores. Entendi melhor os gerais. 

    De toda forma vou continuar estudando para aperfeiçoar. Valeu felipe!!

  4. Boa noite, hoje atarde testando o pouco de conhecimento que adquirir sobre assembly e analisando, olhando engenharia reversa de gringos, topei com essa duvida? Como ele conseguiu extender variáveis com nome.  Percorri código pra verificar se tinha alguma macro ou instrução setando endereço e atribuindo apelido a mesma porem não, ela ta usando nome  mesmo. Tem mais outras, sera que ele descobrir nome real da variável? Eu falei com um gringo e ele disse que eles procura por nome em outras parte do game como parte de scripts. Funciona mesmo? 

    /* 0444 */ int nLevel;
    /* 0448 */ int _n448;
    /* 044C */ int _n44C;

      Exemplo Imagem

  5. 3 horas atrás, Leandro Fróes disse:

    Interessante, ta ai uma coisa que eu quero tentar um dia, engenharia reversa em jogos, mas no momento eu realmente não sei sobre ?

     

    Seguindo mais ou menos o que você mostrou: ela não ta mexendo nos endereços e sim diretamente nas instruções. Eu realmente não sei como ela acha tal funcionalidade em tal parte do código(você disse que não rola bp, né?!), mas se achar ela pode mudar tanto em um debugger quanto em um editor hexa (tomando cuidado com o número de bytes que ela tem pra cada instrução etc). Tenha em mente que todas as seções estão em disco, ou seja, estão no arquivo e quando o programa é executado o Loader as mapeia em memória. Todas as intruções do código executável (da seção .text, por exemplo) estão no arquivo e podem sim ser vistas por um editor hexa, basta saber procurar hehe.

     

    Se você não entendeu bulhufas do que falei manda uma msg lá no discord qqc que a gente troca uma ideia, mas também aconselho a ver o curso de engenharia reversa do CERO. Sobre descobrir o que os opcodes fazem, da uma olhadinha aqui qqc http://ref.x86asm.net/

     

    Abraço!!

    Blz, deixa eu entender esse assembly e logo entro no radio, tenho conhecimento de c/c++ mas nem da de ter uma conversa a nível com vocês, Ta osso pra crl. Frederico Pissarra ainda brinca na apostila dele que isto não é difícil aprender. 

  6. Tipo usando esse Cheat Engine da de descobrir onde fica endereço de certa coisa como moeda de um jogo etc..

    Mas como descobrir algo que não da uma referencia?  Acho que me empolguei um pouco e acabei poluído o poste kkk

  7. To estudando assembly para entender o que são estas coisas que ela faz.

    Para entender como ela pega esses endereços testa ou o que os endereços faz. Por que como vai da breakpoint em um executável de  rpg acho que não é possível ne? Usa os ganços acho que seria de menos problema é entender como funciona os endereços, BYTE etc...

    	if (Config::Instance()->fixes->territoryWarPetFix) {
    		WriteInstructionCall(0x8D1470, reinterpret_cast<UINT32>(GetUserOrMaster), 0x8D1476);
    		WriteMemoryBYTES(0x8D1476, "\x4C\x39\xE8", 3);
    		WriteMemoryBYTES(0x8D147B,
    			"\x44\x8B\x45\x18\x8B\x40\x18\x44"
    			"\x89\x44\x24\x30\x89\x44\x24\x20"
    			"\x48\x8B\x85\x90\x0A\x00\x00\x8B"
    			"\x90\x84\x0B\x00\x00\x89\x54\x24"
    			"\x28", 33);
    	}
    
              WriteInstructionCall(0x443F58 + 0x11D, reinterpret_cast<UINT32>(SendSaveCharacterInfoWrapper));
  8. Isso que iria pergunta agora, eu acompanhei o projeto de uma gringa fera  no eng rv, e ela fazia esse HEX de trás para frente, me ajudou muito, ela falava sobre PE format também , great content,  ainda vou descobrir como ela encontrava no Hex Editor enable de funcionalidade x do game  .exe 

×
×
  • Create New...