Compartilhe
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
  • Reputação da mensagem: 100% (5 votos)

[AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 15:01
OBS: Outros compiladores ou montadores assembly podem não ser compatíveis com o programa.

Conteúdo antigo do tópico:
Inicialmente, para que serve?
Para facilitar a compilação de códigos de C++ e usá-los em scripts CLEO/SCM, exemplo, eu tenho o seguinte código:

Código:

#include <cstdint>

void decriptMyScript(int *start, int *end){
 int password = 0xFFFFFFFF;
 
 for(int64_t i = 0, size = (end - start + 4) / 4; i < size; i++){
 start[i] ^= password;
 password = start[i];
 }
}

Eu preciso colocá-lo em um script para usar no GTA, para fazer manualmente da maneira mais fácil eu preciso usar o MinGW, pegar o output assembly e usar o NASM em seguida para gerar meu binário, o problema é que o NASM não gera apenas o código hex legivel por humanos, mas a quantidade de linhas, etc. coisa que não posso colocar no hex...end do sanny builder, então ou eu preciso comentar esse código, ou eu apago, mas como é uma utilidade para a localização de offsets, linhas, etc. é bom deixar. O problema de tudo isso é você precisar ficar alterando seu código C++ e toda hora você precisar repetir a tarefa de comentar o seu hex de assembly, é isso que o programa faz, você coloca o input .CPP nele, ele faz todas as adaptações de sintaxe e te devolve o output.asm.txt pronto para usar no sanny builder, assim:

Código:
hex
//     1                                  BITS 32
//     2                                  
//     3                                      ;.file    "dec.cpp"
//     4                                      ;.intel_syntax noprefix
//     5                                      ;.text
//     6                                      ;.globl    __Z15decriptMyScriptPiS_
//     7                                      ;.def    __Z15decriptMyScriptPiS_;    ;.scl    2;    ;.type    32;    ;.endef
//     8                                  __Z15decriptMyScriptPiS_:
//     9                                  LFB0:
//    10                                      ;.cfi_startproc
{    11 00000000} 55                         //push   ebp
//    12                                      ;.cfi_def_cfa_offset 8
//    13                                      ;.cfi_offset 5, -8
{    14 00000001} 89E5                       //mov   ebp, esp
//    15                                      ;.cfi_def_cfa_register 5
{    16 00000003} 81EC20000000               //sub   esp, 32
{    17 00000009} C745FCFFFFFFFF             //mov   DWORD [ebp-4], -1
{    18 00000010} C745F000000000             //mov   DWORD [ebp-16], 0
{    19 00000017} C745F400000000             //mov   DWORD [ebp-12], 0
{    20 0000001E} 8B550C                     //mov   edx, DWORD [ebp+12]
{    21 00000021} 8B4508                     //mov   eax, DWORD [ebp+8]
{    22 00000024} 29C2                       //sub   edx, eax
{    23 00000026} 89D0                       //mov   eax, edx
{    24 00000028} C1F802                     //sar   eax, 2
{    25 0000002B} 0504000000                 //add   eax, 4
{    26 00000030} 8D5003                     //lea   edx, [eax+3]
{    27 00000033} 85C0                       //test   eax, eax
{    28 00000035} 0F48C2                     //cmovs   eax, edx
{    29 00000038} C1F802                     //sar   eax, 2
{    30 0000003B} 99                         //cdq
{    31 0000003C} 8945E8                     //mov   DWORD [ebp-24], eax
{    32 0000003F} 8955EC                     //mov   DWORD [ebp-20], edx
{    33 00000042} E947000000                 //jmp   L2
//    34                                  L3:
{    35 00000047} 8B45F0                     //mov   eax, DWORD [ebp-16]
{    36 0000004A} 8D148500000000             //lea   edx, [0+eax*4]
{    37 00000051} 8B4508                     //mov   eax, DWORD [ebp+8]
{    38 00000054} 01C2                       //add   edx, eax
{    39 00000056} 8B45F0                     //mov   eax, DWORD [ebp-16]
{    40 00000059} 8D0C8500000000             //lea   ecx, [0+eax*4]
{    41 00000060} 8B4508                     //mov   eax, DWORD [ebp+8]
{    42 00000063} 01C8                       //add   eax, ecx
{    43 00000065} 8B00                       //mov   eax, DWORD [eax]
{    44 00000067} 3345FC                     //xor   eax, DWORD [ebp-4]
{    45 0000006A} 8902                       //mov   DWORD [edx], eax
{    46 0000006C} 8B45F0                     //mov   eax, DWORD [ebp-16]
{    47 0000006F} 8D148500000000             //lea   edx, [0+eax*4]
{    48 00000076} 8B4508                     //mov   eax, DWORD [ebp+8]
{    49 00000079} 01D0                       //add   eax, edx
{    50 0000007B} 8B00                       //mov   eax, DWORD [eax]
{    51 0000007D} 8945FC                     //mov   DWORD [ebp-4], eax
{    52 00000080} 8145F001000000             //add   DWORD [ebp-16], 1
{    53 00000087} 8155F400000000             //adc   DWORD [ebp-12], 0
//    54                                  L2:
{    55 0000008E} 8B45F0                     //mov   eax, DWORD [ebp-16]
{    56 00000091} 8B55F4                     //mov   edx, DWORD [ebp-12]
{    57 00000094} 3B55EC                     //cmp   edx, DWORD [ebp-20]
{    58 00000097} 7CAE                       //jl   L3
{    59 00000099} 3B55EC                     //cmp   edx, DWORD [ebp-20]
{    60 0000009C} 7F05                       //jg   L1
{    61 0000009E} 3B45E8                     //cmp   eax, DWORD [ebp-24]
{    62 000000A1} 72A4                       //jb   L3
//    63                                  L1:
{    64 000000A3} C9                         //leave
//    65                                      ;.cfi_restore 5
//    66                                      ;.cfi_def_cfa 4, 4
{    67 000000A4} C3                         //ret
//    68                                      ;.cfi_endproc
//    69                                  LFE0:
//    70                                      ;.ident    "GCC: (GNU) 4.8.1"
end



Pré requisitos:

  • MinGW
  • NASM


Antes de começar você precisa colocar o path do NASM e do MinGW corretamente no Config.txt, não é necessário mexer nos nomes de output e nos parâmetros

Atualização:
Geração de código binário pronto para usar com C++

Código:
char code[] = {bytes do script aqui};




Recomendo que leia o conteúdo antigo do tópico, que está dentro do Spoiler antes de continuar.

Ter noção do funcionamento do básico e de como usar o IDA é necessário: http://bms.mixmods.com.br/t5034-x-engenharia-reversa-basico




Spoiler:
O programa está passando por melhorias, então algumas funções podem mudar ou serem trocadas por formas melhores.

Vou fazer apenas uma apresentação superficial de como usar a ferramenta e fazer os códigos, portanto é necessário um bom conhecimento do funcionamento de gta3script e C++ previamente.
Por favor leia todos os tutoriais antes de prosseguir: http://bms.mixmods.com.br/t203-indice-de-tutoriais-cleo-script-scm  http://bms.mixmods.com.br/t5967-indice-de-tutoriais-cleo-script-gta3script

http://en.cppreference.com/book/

Nessa versão do programa eu criei dois arquivos headers, um para ser usado no topo do código, outro para ser usado no fim do código. Essas headers cuidarão da inicialização de construtores, referências para o software e correção de endereços globais.

Outra novidade é o SymbolList.txt, nele pode ser colocado funções e seus endereços, podem ser copiadas direto da function list do IDA, pelo método de selecionar, copiar e colar.
Código:
_strlen   .text 00826330 0000008B 00000000 00000004 R . L S . T .
_strcmp   .text 008263C0 00000088 00000000 00000008 R . L S . T .
_strncat  .text 00826450 00000135 00000000 0000000C R . L S . T .
_strcpy_0 .text 00826590 00000007 00000004 00000008 R . L . . T .
_strcat   .text 008265A0 000000E8 00000000 00000008 R . L S . T .
_fclose                         .text 0082318B 00000046 00000000 00000000 R . L . . T .
_fcos                           .text 0041BCF0 00000007 00000000 00000004 R . . . . T .
_feof                           .text 008262A2 0000000B 00000000 00000004 R . . . . T .
_ferror                         .text 008262AD 0000000B 00000000 00000004 R . L . . T .
_fflush                         .text 00823E86 00000046                   R . L . . T .
_fgetc                          .text 008231DC 00000045                   R . L . . T .
_fgetc_0                        .text 0082322C 00000045                   R . L . . T .
_fgets                          .text 00823798 0000007B 00000000 00000000 R . L . . T .
_findAnimationStyleByBaseName   .text 004D39B0 00000039 00000004 00000004 R . . . . T .
_findCrane                      .text 00556000 0000002F 00000004 00000004 R . . . . T .
_findCullZoneForPoint           .text 0072DAD0 0000007B 0000000C 00000000 R . . . . . .
_findCullZoneReflectionForPoint .text 0072DA70 0000005E 00000010 0000000C R . . . . . .
_findFirstAtomicWith2dfx        .text 00734880 00000025 00000004 00000004 R . . . . . .
_findFirstAtomicWith2dfxCB      .text 00734850 00000022 00000000 00000008 R . . . . T .
_findFrameByNodeNameCB          .text 004C52A0 00000045 00000004 00000008 R . . . . T .
_findIfpFileByName              .text 004D3940 00000046 00000000 00000004 R . . . . . .
_findShoppingDatSection         .text 0049AE70 0000009C 00000008 00000008 R . . . . T .
_findenv                        .text 00834F14 0000004D 00000004 00000004 R . L S . . .
_fix_grouping                   .text 0082FDD6 00000033                   R . L S . . .
_fix_grouping_0                 .text 00830035 00000033                   R . L S . . .
_floor                          .text 008219F0 00000121 00000010 00000008 R . L . . T .
_floor_0                        .text 00828A60 000000D1 00000028 00000008 R . L . B T .
_floor_1                        .text 0082BA31 000000D1 00000028 00000008 R . L . B T .
_fopen                          .text 008232D8 00000013 00000000 00000008 R . L . . T .
_fpow                           .text 00470000 0000000E 00000000 00000008 R . . . . T .
_fprintf                        .text 00823A30 00000054                   R . . . . T .
_fputs                          .text 008262B8 00000067                   R . L . . T .
_frameFlattenHierarchyCB        .text 004C8E30 00000030 00000004 00000008 R . . . . T .
_frameGetFirstChild             .text 00734900 00000025 00000004 00000004 R . . . . T .
_frameGetHAnimHierarchy         .text 00734AB0 00000056 00000008 00000004 R . . . . T .
_frameGetHAnimHierarchyCB       .text 00734A70 00000033 00000004 00000008 R . . . . T .
_fread                          .text 00823521 00000042 00000000 00000010 R . L . . T .
_fread_0                        .text 00823438 000000E9 0000000C 00000010 R . L . B T .
_free                           .text 0082413F 00000053                   R . . . . T .
_freeCollisionFilePool          .text 004114D0 000000A4 00000004 00000000 R . . . . . .
_freeCollisions                 .text 004162E0 00000044 00000004 00000000 R . . . . . .
_freeMapPipe                    .text 005DA130 000000F6 00000000 00000000 R . . . . . .
_freePaths                      .text 00459400 0000003C 00000008 00000000 R . . . . . .
_freePedAcquaintances           .text 00608B00 00000029                   R . . . . . .
_freezeVehicleOnPath            .text 00459740 00000105 00000000 00000004 R . . . . . .
_fseek                          .text 0082374F 0000003F 00000000 00000000 R . L . . T .
_fsin                           .text 0041BCE0 00000007 00000000 00000004 R . . . . T .
_fsopen                         .text 0082327C 00000052                   R . . . . T .
_ftell                          .text 00826261 00000037                   R . L . . T .
_fwrite                         .text 00823674 00000042 00000000 00000000 R . L . . T .
_fwrite_0                       .text 0082356D 00000107 0000000C 00000010 R . L . B T .
_generateLicenseplate .text 006FD5B0

Como eu fiz para já receber uma lista pronta facilmente, cada função deve estar em uma linha separada e da seguinte forma:
Código:
_generateLicenseplate .text 006FD5B0

Código:
_NOMEDAFUNCAO     .text    ENDEREÇO EM HEX

O underline no inicio da função é necessário, pois o nome das funções compiladas ganham um underline (_).

Exemplo do protótipo da função generateLicenseplate dentro do código:

Código:
extern "C" bool __cdecl generateLicenseplate(char *buf, signed int len);

Dentro do SymbolList.txt ela deverá ser:
Código:
_generateLicenseplate .text 006FD5B0

O software gerará dentro do código final apenas as funções necessárias, portanto pode ter uma lista imensa.

Arquivo de exemplo:

Código:

/****************************************************************************
* http://bms.mixmods.com.br/t4721-avancado-facilitador-de-conversao-de-c-para-assembly-para-usar-em-scripts-cleo-scm
*
*
*/
#include "includes/top.h" // Esta header deverá ser incluída no topo, ao usar ela, incluir a btn.h também
#include <cstring> // Protótipos das funções de string de C, como por exemplo strcmp, entre outras.

///************************************   INÍCIO DO CÓDIGO CPP   ********************************************************

// CLASSES!!!
class testClass
{
 int a;
 const char *strA;
 
public:
 const char *getStrA()
 {
 return strA;
 }
 
 // Suporte a construtores
 testClass() : strA("ABCDEF")
 {
 a = 10;
 }
};

// OBJETO GLOBAL DA CLASSE, o Helper chamará o construtor da classe automaticamente
testClass b;

/// ATENÇÃO: Para que o código funcione adequadamente, deve ter um call para _initCPPCode,
/// feito apenas UMA ÚNICA VEZ, antes de chamar qualquer outra função do código.
/// Como demonstrado no código comentado abaixo:

/*
 SCRIPT_START
 {
 LVAR_INT init main rtn
 GET_LABEL_POINTER _initCPPCode init
 GET_LABEL_POINTER _codeMain main

 WAIT 0
 CALL_FUNCTION init 0 0

 ad_infinitum:
 WAIT 5000
 CALL_FUNCTION_RETURN main 1 1 (0) (rtn)
 GOTO ad_infinitum
 }
 SCRIPT_END
*/

/* É bom usar extern "C" nessa função, para evitar que o compilador altere para um nome aleatório
*  quando usar uma função codeMain, o Helper irá destacar a posição dela com um DUMP _codeMain: ENDDUMP
*  para facilitar o uso com gta3script, pode ser usada no Sanny Builder também alterando DUMP para HEX e ENDDUMP para END
*/
extern "C" int __declspec(dllexport) codeMain(int i)
{
 //showTextBox(b.getStrA(), 0, 0, 0);
 char aaa[32] = {0};
 
 // Testando a função do jogo prototipada no top.h e com endereço definido no SymbolList.txt
 bool gerado = generateLicenseplate(aaa, 8);
 
 if (strcmp("ABCDEF", b.getStrA()) == 0)
 {
 showTextBox(aaa, 0, 0, 0);
 }
 
 return 0;
}


///************************************   FINAL DO ARQUIVO CPP   ********************************************************
#include "includes/btn.h" // Esta header deverá ser incluída no final do código, ao usar ela, incluir a top.h também

Tanto esse código de exemplo quanto o top.h e btn.h estão incluídos no download.

Exemplo de uso do código acima dentro de um script de gta3script:
Código:
SCRIPT_START
{
    LVAR_INT init main rtn
    GET_LABEL_POINTER _initCPPCode init
    GET_LABEL_POINTER _codeMain main

    WAIT 0
    CALL_FUNCTION init 0 0

ad_infinitum:
    WAIT 5000
    CALL_FUNCTION_RETURN main 1 1 (0) (rtn)
    GOTO ad_infinitum
}
SCRIPT_END

DUMP
// _topCPPCodeLabel:
// __ZStL19piecewise_construct:
/*    11 00000000*/ 00                         //db00
// __ZStL13allocator_arg:
/*    13 00000001*/ 00                         //db00
// __ZStL6ignore:
/*    15 00000002*/ 00                         //db00
// _putNonDefinedSymbolsHere:
// _strcmp:
/*    20 00000003*/ B8C0638200                 //moveax, 0x008263c0
/*    21 00000008*/ FFE0                       //jmpeax
// _generateLicenseplate:
/*    24 0000000A*/ B8B0D56F00                 //moveax, 0x006fd5b0
/*    25 0000000F*/ FFE0                       //jmpeax
/*    27 00000011*/ 90                     //nop
//    31                                      ;.data
//    32                                      ;.align 4
// _gtarand:
/*    34 00000012*/ 1E1B8200                   //dd8526622
//    36                                      ;.align 4
// _showTextBox:
/*    38 00000016*/ E08B5800                   //dd5802976
//    40                                      ;.align 4
// _gtastrncmp:
/*    42 0000001A*/ D0148200                   //dd8525008
//    44                                      ;.align 4
// _gtasprintf:
/*    46 0000001E*/ B51B8200                   //dd8526773
//    48                                      ;.linkonce discard
//    49                                      ;.align 2
// __ZN9testClass7getStrAEv:
// LFB2675:
/*    55 00000022*/ 55                         //push   ebp
/*    58 00000023*/ 89E5                       //mov   ebp, esp
/*    60 00000025*/ 83EC04                     //sub   esp, 4
/*    61 00000028*/ 894DFC                     //mov   DWORD [ebp-4], ecx
/*    62 0000002B*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
/*    63 0000002E*/ 8B4004                     //mov   eax, DWORD [eax+4]
/*    64 00000031*/ C9                         //leave
/*    67 00000032*/ C3                         //ret
// LFE2675:
// LC0:
/*    72 00000033*/ 41424344454600             //db'ABCDEF', 00
//    74                                      ;.linkonce discard
//    75                                      ;.align 2
// __ZN9testClassC1Ev:
// LFB2678:
/*    81 0000003A*/ 55                         //push   ebp
/*    84 0000003B*/ 89E5                       //mov   ebp, esp
/*    86 0000003D*/ 83EC04                     //sub   esp, 4
/*    87 00000040*/ 894DFC                     //mov   DWORD [ebp-4], ecx
/*    88 00000043*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
/*    89 00000046*/ C7400433000000           //mov   DWORD eax+4, LC0
/*    90 0000004D*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
/*    91 00000050*/ C7000A000000               //mov   DWORD [eax], 10
/*    92 00000056*/ C9                         //leave
/*    95 00000057*/ C3                         //ret
// LFE2678:
//   100                                      ;.align 4
// _b:
/*   102 00000058*/ 0000000000000000           //db00,00,00,00,00,00,00,00
ENDDUMP

_codeMain:
DUMP
// LFB2679:
/*   109 00000060*/ 55                         //push   ebp
/*   112 00000061*/ 89E5                       //mov   ebp, esp
/*   114 00000063*/ 56                         //push   esi
/*   115 00000064*/ 53                         //push   ebx
/*   116 00000065*/ 83EC40                     //sub   esp, 64
/*   119 00000068*/ 8D45D7                     //lea   eax, [ebp-41]
/*   120 0000006B*/ BA20000000                 //mov   edx, 32
/*   121 00000070*/ B900000000                 //mov   ecx, 0
/*   122 00000075*/ 89C3                       //mov   ebx, eax
/*   123 00000077*/ 83E301                     //and   ebx, 1
/*   124 0000007A*/ 85DB                       //test   ebx, ebx
/*   125 0000007C*/ 7408                       //je   L5
/*   126 0000007E*/ 8808                       //mov   BYTE [eax], cl
/*   127 00000080*/ 83C001                     //add   eax, 1
/*   128 00000083*/ 83EA01                     //sub   edx, 1
// L5:
/*   130 00000086*/ 89C3                       //mov   ebx, eax
/*   131 00000088*/ 83E302                     //and   ebx, 2
/*   132 0000008B*/ 85DB                       //test   ebx, ebx
/*   133 0000008D*/ 7409                       //je   L6
/*   134 0000008F*/ 668908                     //mov   WORD [eax], cx
/*   135 00000092*/ 83C002                     //add   eax, 2
/*   136 00000095*/ 83EA02                     //sub   edx, 2
// L6:
/*   138 00000098*/ 89D6                       //mov   esi, edx
/*   139 0000009A*/ 83E6FC                     //and   esi, -4
/*   140 0000009D*/ BB00000000                 //mov   ebx, 0
// L7:
/*   142 000000A2*/ 890C18                     //mov   DWORD [eax+ebx], ecx
/*   143 000000A5*/ 83C304                     //add   ebx, 4
/*   144 000000A8*/ 39F3                       //cmp   ebx, esi
/*   145 000000AA*/ 72F6                       //jb   L7
/*   146 000000AC*/ 01D8                       //add   eax, ebx
/*   147 000000AE*/ 89D3                       //mov   ebx, edx
/*   148 000000B0*/ 83E302                     //and   ebx, 2
/*   149 000000B3*/ 85DB                       //test   ebx, ebx
/*   150 000000B5*/ 7406                       //je   L9
/*   151 000000B7*/ 668908                     //mov   WORD [eax], cx
/*   152 000000BA*/ 83C002                     //add   eax, 2
// L9:
/*   154 000000BD*/ 83E201                     //and   edx, 1
/*   155 000000C0*/ 85D2                       //test   edx, edx
/*   156 000000C2*/ 7405                       //je   L10
/*   157 000000C4*/ 8808                       //mov   BYTE [eax], cl
/*   158 000000C6*/ 83C001                     //add   eax, 1
// L10:
/*   160 000000C9*/ C744240408000000           //mov   DWORD [esp+4], 8
/*   161 000000D1*/ 8D45D7                     //lea   eax, [ebp-41]
/*   162 000000D4*/ 890424                     //mov   DWORD [esp], eax
/*   163 000000D7*/ E82EFFFFFF                 //call   _generateLicenseplate
/*   164 000000DC*/ 8845F7                     //mov   BYTE [ebp-9], al
/*   165 000000DF*/ B958000000               //mov   ecx, _b
/*   166 000000E4*/ E839FFFFFF                 //call   __ZN9testClass7getStrAEv
/*   167 000000E9*/ 89442404                   //mov   DWORD [esp+4], eax
/*   168 000000ED*/ C7042433000000           //mov   DWORD esp, LC0
/*   169 000000F4*/ E80AFFFFFF                 //call   _strcmp
/*   170 000000F9*/ 85C0                       //test   eax, eax
/*   171 000000FB*/ 0F94C0                     //sete   al
/*   172 000000FE*/ 84C0                       //test   al, al
/*   173 00000100*/ 7425                       //je   L11
/*   174 00000102*/ A116000000               //mov   eax, DWORD _showTextBox
/*   175 00000107*/ C744240C00000000           //mov   DWORD [esp+12], 0
/*   176 0000010F*/ C744240800000000           //mov   DWORD [esp+8], 0
/*   177 00000117*/ C744240400000000           //mov   DWORD [esp+4], 0
/*   178 0000011F*/ 8D55D7                     //lea   edx, [ebp-41]
/*   179 00000122*/ 891424                     //mov   DWORD [esp], edx
/*   180 00000125*/ FFD0                       //call   eax
// L11:
/*   182 00000127*/ B800000000                 //mov   eax, 0
/*   183 0000012C*/ 83C440                     //add   esp, 64
/*   184 0000012F*/ 5B                         //pop   ebx
/*   186 00000130*/ 5E                         //pop   esi
/*   188 00000131*/ 5D                         //pop   ebp
/*   191 00000132*/ C3                         //ret
// LFE2679:
// _internalCodeDeducePtr:
/*   196 00000133*/ 58                     //popeax
/*   197 00000134*/ 50                     //pusheax
/*   198 00000135*/ C3                     //ret
//   204                                      ;.align 4
// _sdata:
/*   206 00000136*/ 00000000                   //db00,00,00,00
/*   210 0000013A*/ E9C1FEFFFF             //jmp_topCPPCodeLabel
// _memoryRet:
/*   212 0000013F*/ B878563412             //moveax, 0x12345678
/*   213 00000144*/ C3                     //ret
// _callWrapper:
/*   216 00000145*/ E8E9FFFFFF             //call_internalCodeDeducePtr
/*   217 0000014A*/ C3                     //ret
// _replaceCodesWrapper:
// LFB2680:
/*   227 0000014B*/ 55                         //push   ebp
/*   230 0000014C*/ 89E5                       //mov   ebp, esp
/*   232 0000014E*/ 83EC18                     //sub   esp, 24
/*   233 00000151*/ 814508f5020000             //add   DWORD [ebp+8], 16777215
/*   234 00000158*/ 8B4508                     //mov   eax, DWORD [ebp+8]
/*   235 0000015B*/ 8B550C                     //mov   edx, DWORD [ebp+12]
/*   236 0000015E*/ 89542408                   //mov   DWORD [esp+8], edx
/*   237 00000162*/ C744240405000000           //mov   DWORD [esp+4], 65535
/*   238 0000016A*/ 890424                     //mov   DWORD [esp], eax
/*   239 0000016D*/ E8B6000000                 //call   _replaceCodes
/*   240 00000172*/ C9                         //leave
/*   243 00000173*/ C3                         //ret
// LFE2680:
/*   248 00000174*/ 90                     //nop
// _runCodeCtors:
/*   250 00000175*/ 60                     //pushad
// LCODECTORSDATACALL:
/*   252 00000176*/ E81B010000             //call__GLOBAL__sub_I_gtarand
/*   253 0000017B*/ 90                     //nop
/*   254 0000017C*/ 90                     //nop
/*   255 0000017D*/ 90                     //nop
/*   256 0000017E*/ 90                     //nop
/*   257 0000017F*/ 61                     //popad
/*   258 00000180*/ C3                     //ret
ENDDUMP

_initCPPCode:
DUMP
// LFB2681:
/*   266 00000181*/ 55                         //push   ebp
/*   269 00000182*/ 89E5                       //mov   ebp, esp
/*   271 00000184*/ 83EC48                     //sub   esp, 72
/*   272 00000187*/ E8B3FFFFFF                 //call   _memoryRet
/*   273 0000018C*/ 8945F4                     //mov   DWORD [ebp-12], eax
/*   274 0000018F*/ 817DF478563412             //cmp   DWORD [ebp-12], 305419896
/*   275 00000196*/ 0F858A000000               //jne   L14
/*   276 0000019C*/ C745F000000000             //mov   DWORD [ebp-16], 0
/*   277 000001A3*/ E89DFFFFFF                 //call   _callWrapper
/*   278 000001A8*/ 8945F0                     //mov   DWORD [ebp-16], eax
/*   279 000001AB*/ 836DF005                   //sub   DWORD [ebp-16], 5
/*   280 000001AF*/ 836DF001                   //sub   DWORD [ebp-16], 1
/*   281 000001B3*/ 836DF005                   //sub   DWORD [ebp-16], 5
/*   282 000001B7*/ 8B45F0                     //mov   eax, DWORD [ebp-16]
/*   283 000001BA*/ 8945EC                     //mov   DWORD [ebp-20], eax
/*   284 000001BD*/ 8345EC01                   //add   DWORD [ebp-20], 1
/*   285 000001C1*/ 836DF005                   //sub   DWORD [ebp-16], 5
/*   286 000001C5*/ 8B45F0                     //mov   eax, DWORD [ebp-16]
/*   287 000001C8*/ 8945E8                     //mov   DWORD [ebp-24], eax
/*   288 000001CB*/ 8B45E8                     //mov   eax, DWORD [ebp-24]
/*   289 000001CE*/ 8945E4                     //mov   DWORD [ebp-28], eax
/*   290 000001D1*/ 8345E801                   //add   DWORD [ebp-24], 1
/*   291 000001D5*/ 8B45E8                     //mov   eax, DWORD [ebp-24]
/*   292 000001D8*/ 8B00                       //mov   eax, DWORD [eax]
/*   293 000001DA*/ 99                         //cdq
/*   294 000001DB*/ 8945D8                     //mov   DWORD [ebp-40], eax
/*   295 000001DE*/ 8955DC                     //mov   DWORD [ebp-36], edx
/*   296 000001E1*/ 8B45E4                     //mov   eax, DWORD [ebp-28]
/*   297 000001E4*/ 99                         //cdq
/*   298 000001E5*/ 8945D0                     //mov   DWORD [ebp-48], eax
/*   299 000001E8*/ 8955D4                     //mov   DWORD [ebp-44], edx
/*   300 000001EB*/ 8345D005                   //add   DWORD [ebp-48], 5
/*   301 000001EF*/ 8355D400                   //adc   DWORD [ebp-44], 0
/*   302 000001F3*/ 8B45D0                     //mov   eax, DWORD [ebp-48]
/*   303 000001F6*/ 8B55D4                     //mov   edx, DWORD [ebp-44]
/*   304 000001F9*/ 0145D8                     //add   DWORD [ebp-40], eax
/*   305 000001FC*/ 1155DC                     //adc   DWORD [ebp-36], edx
/*   306 000001FF*/ 8B55D8                     //mov   edx, DWORD [ebp-40]
/*   307 00000202*/ 8B45D8                     //mov   eax, DWORD [ebp-40]
/*   308 00000205*/ 89542404                   //mov   DWORD [esp+4], edx
/*   309 00000209*/ 890424                     //mov   DWORD [esp], eax
/*   310 0000020C*/ E83AFFFFFF                 //call   _replaceCodesWrapper
/*   311 00000211*/ 8B45EC                     //mov   eax, DWORD [ebp-20]
/*   312 00000214*/ 8B55D8                     //mov   edx, DWORD [ebp-40]
/*   313 00000217*/ 8910                       //mov   DWORD [eax], edx
/*   314 00000219*/ E821FFFFFF                 //call   _memoryRet
/*   315 0000021E*/ 8945F4                     //mov   DWORD [ebp-12], eax
/*   316 00000221*/ E84FFFFFFF                 //call   _runCodeCtors
// L14:
/*   318 00000226*/ C9                         //leave
/*   321 00000227*/ C3                         //ret
// LFE2681:
// _replaceCodes:
// LFB2682:
/*   329 00000228*/ 55                         //push   ebp
/*   332 00000229*/ 89E5                       //mov   ebp, esp
/*   334 0000022B*/ 83EC10                     //sub   esp, 16
/*   335 0000022E*/ C745FC00000000             //mov   DWORD [ebp-4], 0
/*   336 00000235*/ EB37                       //jmp   L17
// L18:
/*   338 00000237*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
/*   339 0000023A*/ 8D148500000000             //lea   edx, [0+eax*4]
/*   340 00000241*/ 8B4508                     //mov   eax, DWORD [ebp+8]
/*   341 00000244*/ 01D0                       //add   eax, edx
/*   342 00000246*/ 8B00                       //mov   eax, DWORD [eax]
/*   343 00000248*/ 8945F8                     //mov   DWORD [ebp-8], eax
/*   344 0000024B*/ 8B4510                     //mov   eax, DWORD [ebp+16]
/*   345 0000024E*/ 0145F8                     //add   DWORD [ebp-8], eax
/*   346 00000251*/ 8B45F8                     //mov   eax, DWORD [ebp-8]
/*   347 00000254*/ 8945F4                     //mov   DWORD [ebp-12], eax
/*   348 00000257*/ 8B45F4                     //mov   eax, DWORD [ebp-12]
/*   349 0000025A*/ 8B00                       //mov   eax, DWORD [eax]
/*   350 0000025C*/ 89C2                       //mov   edx, eax
/*   351 0000025E*/ 8B4510                     //mov   eax, DWORD [ebp+16]
/*   352 00000261*/ 01D0                       //add   eax, edx
/*   353 00000263*/ 89C2                       //mov   edx, eax
/*   354 00000265*/ 8B45F4                     //mov   eax, DWORD [ebp-12]
/*   355 00000268*/ 8910                       //mov   DWORD [eax], edx
/*   356 0000026A*/ 8345FC01                   //add   DWORD [ebp-4], 1
// L17:
/*   358 0000026E*/ 8B45FC                     //mov   eax, DWORD [ebp-4]
/*   359 00000271*/ 3B450C                     //cmp   eax, DWORD [ebp+12]
/*   360 00000274*/ 7CC1                       //jl   L18
/*   361 00000276*/ C9                         //leave
/*   364 00000277*/ C3                         //ret
// LFE2682:
// replaceCodesSpacePlaceCreate:
// __Z41__static_initialization_and_destruction_0ii:
// LFB2742:
/*   377 00000278*/ 55                         //push   ebp
/*   380 00000279*/ 89E5                       //mov   ebp, esp
/*   382 0000027B*/ 837D0801                   //cmp   DWORD [ebp+8], 1
/*   383 0000027F*/ 7513                       //jne   L19
/*   384 00000281*/ 817D0CFFFF0000             //cmp   DWORD [ebp+12], 65535
/*   385 00000288*/ 750A                       //jne   L19
/*   386 0000028A*/ B958000000               //mov   ecx, _b
/*   387 0000028F*/ E8A6FDFFFF                 //call   __ZN9testClassC1Ev
// L19:
/*   389 00000294*/ 5D                         //pop   ebp
/*   392 00000295*/ C3                         //ret
// LFE2742:
// __GLOBAL__sub_I_gtarand:
// LFB2743:
/*   399 00000296*/ 55                         //push   ebp
/*   402 00000297*/ 89E5                       //mov   ebp, esp
/*   404 00000299*/ 83EC08                     //sub   esp, 8
/*   405 0000029C*/ C7442404FFFF0000           //mov   DWORD [esp+4], 65535
/*   406 000002A4*/ C7042401000000             //mov   DWORD [esp], 1
/*   407 000002AB*/ E8C8FFFFFF                 //call   __Z41__static_initialization_and_destruction_0ii
/*   408 000002B0*/ C9                         //leave
/*   411 000002B1*/ C3                         //ret
// LFE2743:
//   415                                      ;.align 4
//   416                                      ;.long    __GLOBAL__sub_I_gtarand
// "GCC:
/*   424 000002B2*/ 202D6578706F72743A         //db' -export:\replaceCodes\', 00
/*   424 000002BB*/ 5C7265706C61636543
/*   424 000002C4*/ 6F6465735C00      
/*   425 000002CA*/ 202D6578706F72743A         //db' -export:\initCPPCode\', 00
/*   425 000002D3*/ 5C696E697443505043
/*   425 000002DC*/ 6F64655C00        
/*   426 000002E1*/ 202D6578706F72743A         //db' -export:\codeMain\', 00
/*   426 000002EA*/ 5C636F64654D61696E
/*   426 000002F3*/ 5C00              

//replaceCodesSpacePlace:
 49000000 e0000000 f0000000 03010000 8b020000

ENDDUMP

Download (source incluído): https://drive.google.com/file/d/0B2ebUkGNDHfuMHJtQXIyUWdXUGM/view?usp=sharing




Eu sei que poucos vão entender o uso disso inicialmente, mas tá aí de qualquer forma

Alerta: use por sua própria conta e risco.


Última edição por Fabio em Dom 30 Jul 2017, 19:09, editado 12 vez(es)

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 15:13
q loco
agr fica facil usar C++ dentro de um cleo :)

______________________________

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 15:18
Junior_Djjr escreveu:q loco
agr fica facil usar C++ dentro de um cleo :)

Com certeza, fiz o programa porque eu tava de saco cheio de ficar toda hora recomentando os offsets e etc. fora os ajustes que precisa colocar no output do GNU G++ para conseguir compilar no NASM Fuch That Guy

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 16:19
Massa :)
Um dia eu chego ai
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 16:30
Nex' escreveu:Massa :)
Um dia eu chego ai

Vlw :)
Chegue logo :)

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 41
Reputação : 0
Desde : 22/04/2015
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 17:27
Já eu nem passarei por ai Fuch That Guy
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 18:06
eu nem passei :)
pq realmente nao acho necessário pra mim, até q eu queria saber c++ etc mas nao vejo muita necessidade e tbm nao quero ter uma vida de programador Fuch That Guy

______________________________

avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 19:04
Também não quero, é mais pra hobby mesmo Fuch That Guy
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 22:23
Até engenharia civil anda pedindo programação atualmente, é bom saber, querendo ser programador ou não

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 22:25
prefiro design
no maximo eu estudaria actionscript ou javascript

______________________________

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 22:53
Junior_Djjr escreveu:prefiro design
no maximo eu estudaria actionscript ou javascript

Conhecimento nunca é demais

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Sab 02 Maio 2015, 23:46
Fabio escreveu:
Junior_Djjr escreveu:prefiro design
no maximo eu estudaria actionscript ou javascript

Conhecimento nunca é demais
tudo custa tempo e tempo vale ouro

o certo eh sempre antes ir atrás de conhecer oq vc acha de melhor e oq mais será útil para vc :)

______________________________

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Dom 03 Maio 2015, 13:51
Ninguém testou? ;_;

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Dom 03 Maio 2015, 15:20
a pergunta eh: alguem pra testar? Fuch That Guy

______________________________

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Dom 03 Maio 2015, 21:56
Junior_Djjr escreveu:a pergunta eh: alguem pra testar? Fuch That Guy

Pois é pokerface

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Ter 19 Maio 2015, 16:39
Atualizado.
Geração de código binário pronto para usar com C++

Código:
char code[] = {bytes do script aqui};

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10280
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Qua 28 Out 2015, 10:18
Tu podia upar seus sources no github (pode ser até no gist). Facilita a minha vida.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Qui 29 Out 2015, 14:29
Thelost escreveu:Tu podia upar seus sources no github (pode ser até no gist). Facilita a minha vida.

Pois é, melhor eu ir me acostumando a fazer isso

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : ;-;
Mensagens : 676
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Seg 07 Dez 2015, 14:42
Acho que estou fazendo algo errado, mas acontece isso :

Configurei as pastas do MinGW e Nasm no .INI mas...

______________________________
" Everyone gonna remember my name ! "
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Seg 07 Dez 2015, 14:52
Tentou compilar o que?

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : ;-;
Mensagens : 676
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Seg 07 Dez 2015, 14:56
Esse é o código :
Código:
#include <algorithm>
#include <iostream>
#include <time.h>
#include <windows.h>
using namespace std;

void test()
{
   typedef char(*sthp)(char* text, int time);
   sthp showtexthighpriority = (sthp)0x69F1E0;
   char* tc = (char*)0x969110;
   int var[5];
   
   while (true)
   {
      Sleep(1);

      string testcheat = tc;
      reverse(testcheat.begin(), testcheat.end());
      if (testcheat == "CALCULAR")
      {
         for (int n = 0; n != 5; n++)
         {
            srand(time(NULL));
            var[n] = rand() % 101;
            while (var[n] != 12)
               if (var[n] > 12)
                  var[n]--;
               else
                  var[n]++;
         }
         showtexthighpriority("Tudo 12 !!!", 3000);
      }
   }
}
Só tentei fazer essa atividade via C++.
Fiz em .ASI e funcionou, mas tentei converter para usar em Cleo só pra teste e não deu. :)


Última edição por israel em Seg 07 Dez 2015, 17:02, editado 2 vez(es) (Razão : Erro de pt...)

______________________________
" Everyone gonna remember my name ! "
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Seg 07 Dez 2015, 16:30
Funções externas não rolam... precisaria fazer mais coisas para funcionar.

Apenas as funções da STL que são compiladas em inline e/ou são mandadas para o object compilado funcionam.

Você vai ter que trabalhar totalmente com char[], ou fazer uma classe de string com allocator próprio (não use alocadores standard também)

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : ;-;
Mensagens : 676
Reputação : 111
Desde : 22/09/2015
Idade : 19
Localização : Salvador - BA
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Seg 07 Dez 2015, 16:53
Entendi :v:

______________________________
" Everyone gonna remember my name ! "
avatar
Mensagens Nível 2
Mensagens Nível 2
Mensagens : 56
Reputação : 0
Desde : 19/01/2017
Ver perfil do usuário

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Dom 22 Jan 2017, 17:09
tendi nada mas so pra avisar os links tao off
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

em Dom 22 Jan 2017, 17:29
-Tito escreveu:tendi nada mas so pra avisar os links tao off

Só não desistir dos estudos que logo você entenderá. :)

Obrigado, consertei o link. :)

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
Conteúdo patrocinado

Re: [AVANÇADO] Facilitador de conversão de C++ para Assembly para usar em scripts CLEO/SCM

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum