Zikagames - Início Ir para conteúdo
keyboard_arrow_down
account_circle Entrar

Entrar



  • Não recomendado para computadores públicos


  • Esqueceu sua senha?

person_add Cadastre-se

theskytalos

Novato
  • Total de itens

    9
  • Registro em

  • Última visita

thumbs_up_down 3 Neutro!

Sobre theskytalos

  • Rank
    Novato!

Informações pessoais

  • Gênero
    Masculino
  1. theskytalos

    Saquei, já que tu citou C4D, texturas e etc... Eu disse aí acima que tenho interesse por modelagem 3D, e quando eu faço algo eu uso Blender com o render Cycles, saberia me dizer se tem como texturizar decentemente um model sem ser fotógrafo ou coisa do tipo (desenhar também já citei aí acima que não é meu forte)? Por textura eu digo as PBR "realistas" mas não necessariamente foto-realísticas. Único jeito que vejo é pegar texturas na net e ir trabalhando o material dela, mas tenho medo de ser tempo perdido...
  2. Lembrando que o "https" pode ser somente "http" caso a URL que tu queira abrir não possua SSL. Um outro adendo é que o "dois cliques" leva no evento padrão de cada componente de UI no Visual Studio, que por acaso em um botão é o evento Click, o ideal seria salientar que o Click, assim como todos eventos disponíveis do componente, está no container de propriedades, no "relâmpago". A partir daí, basta dar dois cliques no evento desejado. No mais, ótimo tópico. Parabéns.
  3. theskytalos

    Caraca bicho... Do mesmo jeito que muitas pessoas que não são da área de computação ficam de boca aberta para códigos, eu fico de boca aberta com essa galera do design, vocês fazem muitas coisas lindas, enquanto isso o máximo que eu me aventuro em Design é modelagem 3D, e somente coisas bem geométricas, no papel desenhar boneco de graveto é um desafio, Photoshop então... Nem se fala. Aliás uma dúvida, que programas tu usa? Tu desenha isso ai? Ou só edita? Pergunto isso porque tem muito Zé ai que fica falando de Software Livre e não sei o quê são tão bons quanto, mas aplicações no mundo real vejo somente Microsoft Office, Adobe Suite e por aí vai.
  4. theskytalos

    Tenho minhas críticas quanto a esses programas de atualização de drivers, ninguém melhor que um MVP a uns 15+ anos para explicar: https://www.youtube.com/watch?v=tZwvBKsryAg Inclusive esse cara abriu meus olhos para muita coisa relacionada a Windows, deixei de ser um desses fanboys cegos de Linux por causa dos vídeos dele. Respeito sua opinião, mas não acho trabalhoso, mal e mal é baixar os drivers dos componentes da placa-mãe (chipset, placa de som, etc), e placa de vídeo, somando dois sites visitados no total. Mas não sei como é teu PC ai, então pode ser que realmente seja trabalhoso pra ti...
  5. theskytalos

    Boa garoto, Tu tem conhecimento da API do YouTube? Tô com um projeto em mente visando o Raspbian nos Raspberry Pi's...
  6. Inclusive, tem um filme na Netflix (tinha) que retrata o início do uso desses métodos estatísticos na MLB, se chama "O Homem que Mudou o Jogo", filme muito bom por sinal.
  7. theskytalos

    Boa! Teve uma época que ouvi muito Punk também, mas ouvia principalmente Oi!. Já ouviu? Caso não conheça é a variação do Punk para Skinheads, é bem parecido.
  8. theskytalos

    Sem mentir? Rock clássico, Country até 1990, sertanejos de raíz, e músicas católicas da idade média e renascimento. Mas o que mais escuto ultimamente é Rock Clássico mesmo.
  9. Pra começar minha atividade no fórum, resolvi começar com o primeiro tópico de C/C++. ● Lembrando que este tutorial é válido apenas para Windows utilizando a Win32 API. Algo parecido pode ser feito no Linux através das system calls utilizando as funções read e write (veja). ● Um outro ponto importante a ser recordado é que este tutorial se restringe SOMENTE a PROCESSOS EXTERNOS, o que NÃO inclui DLLs injetadas no processo, afinal, injetar uma DLL nada mais é do que você manualmente carregar um módulo executável novo no processo, desta forma, você acaba sendo parte do processo, podendo ter acesso direto à memória do processo sem a necessidade da Win32 API como intermediadora. ● As funções de manipulação de memória requerem Permissões de Administrador, portanto, quando for rodar o programa que acessa a memória de uma "vítima", rode-o como Administrador. Se estiver utilizando Visual Studio, rode a própria IDE em Modo Administrador. ● Neste tutorial, será abordada somente o acesso à um endereço direto, DINÂMICO, acessar a partir de endereços bases somando offsets fica para uma outra hora. ● É extremamente recomendado que você saiba C/C++ e tenha noções de PONTEIROS, pois eu simplesmente os uso, inclusive nas chamadas das funções, e não os explico, pois já assumo que vocês os conheça e saiba usá-los. Começaremos com o programa que será "invadido", muito simples: #include <iostream> #include <Windows.h> // Apenas incluí a API para ter acesso à constante TRUE, a função Sleep e a função SetConsoleTitle. int main() { SetConsoleTitle(L"Memory Victim"); // Muda o nome da janela para 'Memory Victim'. int VictimVar = 64; // Variável que será mudada. while (TRUE) // Loop infinito. { // Printa a variável a cada 1 segundo. std::cout << VictimVar << std::endl; Sleep(1000); } } Note que usei majoritariamente recursos da Win32 API (Windows.h), mas por opção própria, a memória de QUALQUER processo em modo usuário pode ser acessada. Documentação: SetConsoleTitle, Sleep. Uma vez escrito o programa "alvo", podemos escrever e aprofundar com detalhes o programa "invasor". #include <iostream> #include <Windows.h> int main() { DWORD Address = 0x00EFF990; // Endereço que será lido e escrito no programa alvo. DWORD ValueRead = 0x0, NewValue = 0x0; DWORD PID; // Retornará um handle para a janela caso suceda, e nulo caso não encontre. HWND hWindow = FindWindow(NULL, L"Memory Victim"); // Verifica o sucesso da chamada FindWindow if (hWindow == NULL) { std::cout << "Não foi possível encontrar a janela."; exit(EXIT_FAILURE); } // Pega o PID do processo que criou a thread da Janela através do handle da janela. GetWindowThreadProcessId(hWindow, &PID); HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, PID); // Verifica o sucesso da chamada OpenProcess if (pHandle == NULL) { std::cout << "Não foi possível pegar o handle do processo."; exit(EXIT_FAILURE); } // Lê o endereço presente na variável Address e guarda na variável ValueRead. ReadProcessMemory(pHandle, (void*)Address, &ValueRead, sizeof(ValueRead), 0); std::cout << "Valor Lido: " << ValueRead << std::endl; NewValue = ValueRead * 2; // Duplica o valor que estava no endereço de memória. WriteProcessMemory(pHandle, (void*)Address, &NewValue, sizeof(NewValue), 0); // Re-lê o a posição de memória para verificar se realmente mudou o valor. ReadProcessMemory(pHandle, (void*)Address, &ValueRead, sizeof(ValueRead), 0); std::cout << "Novo Valor Lido: " << ValueRead << std::endl; system("PAUSE"); return EXIT_SUCCESS; } Aqui a coisa complica um pouco mais complicado, mas vamos lá: Precisamos ler e escrever no processo desejado, para tal, precisamos de um identificador deste processo, que é o PID, obtido pela função GetWindowThreadProcessId . Para utilizar esta função necessita-se de um handler da janela, um jeito comum é pegá-lo através da função FindWindowW (Expandida por FindWindow), procurando pelo título da janela. Uma vez com o PID em mãos, abrimos o processo utilizando a função OpenProcess com a flag PROCESS_ALL_ACCESS (leia), que nos dará permissão de escrita e leitura na memória virtual do processo. A partir daí, basta simplesmente ler e/ou escrever na memória do processo, utilizando as funções ReadProcessMemory e WriteProcessMemory. Rodando o programa "vítima", temos: E, rodando o programa "invasor": O programa "vítima" após ser "invadido": E é isso, maiores detalhes sobre os argumentos das funções e etc se encontram na documentação da Win32 API que deixei linkadas no artigo.
  10. theskytalos

    No caso, a importação MsgBoxStyle não é tão essencial assim. Em linguagens orientadas a objetos modernas (apesar de MsgBoxStyle ser apenas uma Flag), você pode fazer "referência" local, desta forma: MsgBox("EAE MEN", MsgBoxStyle.Information, "Título da Bagaça") Achei um pouco simplista demais para haver a necessidade de um vídeo, mas parabéns, cumpriu bem o papel de ensinar.




×