Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[DÚVIDA] Programação!

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C# / C++ [DÚVIDA] Programação!

    Pessoal eu estou com uma dúvida à alguns dias, comecei estudar linguagem de programação C# (C Sharp), estou com o curso básico e o avançado completissímo mas, minha dúvida é, como qualquer programador aqui sabe, 90% dos melhores jogos (principalmente multplayers) são programados em C++, gostaria de saber se eu poderia fazer um hack ou injetor mesmo, em C# que funcionasse em um jogo C++. Por exemplo, fazer scripts, hacks e injetores em linguagem C#, mas que o jogo em linguagem C++ entendesse! É possível? Se sim, por que? E como? Obrigado!
    Knowledge Is Free.
    We are Anonymous.
    We are Legion.
    We Do Not Forgive.
    We Do Not Forget.
    Expect Us.

  • Font Size
    #2
    Acho impossível, pois, um programa compilado em C# não é binário (Talvez estranho você ler isso) enquanto o em C++ é... O C# depois de compilado depende de uma ferramenta da microsoft que já vem instalado no Windows, o Net.framework. O programa entra em contato com o framework que entra em contato com o SO. Porque isso? Multiplataforma... Sendo assim todos os SO que tiverem instalados o Net.framework vão poder rodar o programa do C# (A mesma ideia do Java). Como Windows Phone, e outras plataformas do Windows. Poderia ser até Linux, creio que exista um framework pra Linux, mas aí tem que pesquisar (:

    Enfim... Acho que dá pra fazer o que vc quer, mas não com C#.
    sigpic

    Decidi deixar de ser usuário e virar desenvolvedor

    Comment


    • Font Size
      #3
      Postado Originalmente por Lizard Ver Post
      Acho impossível, pois, um programa compilado em C# não é binário (Talvez estranho você ler isso) enquanto o em C++ é... O C# depois de compilado depende de uma ferramenta da microsoft que já vem instalado no Windows, o Net.framework. O programa entra em contato com o framework que entra em contato com o SO. Porque isso? Multiplataforma... Sendo assim todos os SO que tiverem instalados o Net.framework vão poder rodar o programa do C# (A mesma ideia do Java). Como Windows Phone, e outras plataformas do Windows. Poderia ser até Linux, creio que exista um framework pra Linux, mas aí tem que pesquisar (:

      Enfim... Acho que dá pra fazer o que vc quer, mas não com C#.
      Obrigado Lizard, resposta ficou clara pra mim, já estou com uma boa noção de programação
      mas então, vou terminar o curso de C# e buscar aprender (sempre) outra linguagem que me de o que preciso. Thx
      Knowledge Is Free.
      We are Anonymous.
      We are Legion.
      We Do Not Forgive.
      We Do Not Forget.
      Expect Us.

      Comment


      • Font Size
        #4
        Postado Originalmente por speed_infected Ver Post
        Pessoal eu estou com uma dúvida à alguns dias, comecei estudar linguagem de programação C# (C Sharp), estou com o curso básico e o avançado completissímo mas, minha dúvida é, como qualquer programador aqui sabe, 90% dos melhores jogos (principalmente multplayers) são programados em C++, gostaria de saber se eu poderia fazer um hack ou injetor mesmo, em C# que funcionasse em um jogo C++. Por exemplo, fazer scripts, hacks e injetores em linguagem C#, mas que o jogo em linguagem C++ entendesse! É possível? Se sim, por que? E como? Obrigado!
        É totalmente possível manipular código não gerenciado(unmannaged) com C# usando a class DllImport processo conhecido com PInvoke.

        Exemplo simples
        Código:
        using System;
        using System.Diagnostics;
        using System.Runtime.InteropServices;
        using System.Windows.Forms;
        
        namespace WindowsFormsApplication1
        {
            public partial class Form1 : Form
            {
                [DllImport("User32.dll")]
                public static extern int SetForegroundWindow(IntPtr point);
        
                public Form1()
                {
                    InitializeComponent();
                    Load += (sender, args) =>
                    {
                        var p = Process.Start("notepad.exe");
                        p.WaitForInputIdle();
                        var h = p.MainWindowHandle;
                        SetForegroundWindow(h);
                        SendKeys.SendWait("Injetando Texto: Cr!tic4L K3rneL");                          
        
                    };
                    
                }
            }
        }
        Mais do que isso com c# é possível manipular ponteiros C/C++ (Unsafe pointer manipulation) para isso em: (Solution Explorer)Properties->Build marque Allow unsafe code para que o compilador C# possa aceitar código não seguro(não gerenciado).

        Bem se você pode manipular ponteiros C/C++ você pode modificar qualquer coisa que está em memoria.

        Quanto ao DLLInject para games ou já usei alguns feitos em C# (Multiplayers) que basicamente fazem um attach em processos que estou rodando e conseguem causar comportamentos diferentes no game com por exemplo fazer o personagem nascer no mesmo local aonde morreu a outros coisas como olhar através das paredes, tudo isso é possível porque DirectX precisar acessar o hardware para ter acesso a teclado, vídeo etc... então pelos mesmos caminho que é usa é possível fazer a manipulação dos ponteiros do mesmo.

        Para finalizar, estude bastante pois não é muito simples conseguir fazer coisa mais complexas mais vai a dica no youtube já tem muitos videos gringos ensinando a fazer coisa do tipo também a internet tem muito coisa relacionada a creation/attach de processos, existem muitos classes no Namespace System.Runtime.InteropServices para essa finalidade, além do que você pode usar muitas bibliotecas de terceiros.

        Meu objetivo mesmo era provar que totalmente possível usar C# para manipular código não gerenciado.

        Não se esqueça de quem fez o Windows, DirectX, .NET, C#...
        att+

        by: Cr!tic4L K3rneL
        "Where there's a Shell, there is a way"

        Comment

        X
        Working...
        X