-
Posts
223 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Mayrinck Bernardo postou
-
Java como imprimir hello world em private public e protected
Mayrinck Bernardo postou um tópico em Java/Android SDK
clase main package application; import entities.Objeto; public class Program { public static void main(String[] args) { Objeto.name1 = "ola mundo1"; Objeto.setName2() = "ola mundo2"; Objeto.setName3() = "ola mundo3"; System.out.println(Objeto.name1 + Objeto.getName2() + Objeto.getName3() ); } } classe protect package application; public class Protect { protected String name3; } classe objeto package entities; public class Objeto { public static String name1; private String name2; public String getName2() { return this.name2; } public void setName2(String name2) { this.name2 = name2; } } alguem sabe dizer o que tá errado preciso chamar no main pra imprimir só pela variavel nao pode ser to string -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
obrigado @arfneto sair do 0 #pragma once #include <windows.h> #include <tlhelp32.h> #include <tchar.h> #include <psapi.h> #include "stdio.h" #include "stdlib.h" #include <iostream> using namespace std; int CALLBACK agente(HWND, LPARAM); int main(int argc, char** argv) { DWORD flags = 0; int inherit = 0; ACCESS_MASK access = READ_CONTROL; HDESK desktop = OpenInputDesktop(flags, inherit, access); if (desktop == NULL) return -1; EnumDesktopWindows(desktop, agente, 0); return 0; }; // main() int CALLBACK agente(HWND H, LPARAM P) { char buffer[512]; DWORD pai; LPDWORD pId = &pai; int n = GetWindowTextLengthA(H); char* titulo = (char*)malloc(1 + n); GetWindowTextA(H, titulo, 1 + n); DWORD window_thread = GetWindowThreadProcessId(H, pId); ACCESS_MASK access = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ; HANDLE hProcess = OpenProcess(access, FALSE, pai); if (hProcess == NULL) return -1; n = GetProcessImageFileNameA(hProcess, buffer, 512); if (n <= 0) return -2; char* p = buffer; for (int i = n; i > 1; i -= 1) { if (buffer[i] != '\\') continue; p = buffer + i + 1; break; } // for() if (strlen(titulo) > 0) { printf("Window thread: %8d\ntitulo: '%s'\npai:%8d\nExe: '%s'\n", window_thread, titulo, pai, p); HANDLE hModuleSnap = CreateToolhelp32Snapshot ( TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, pai ); if (hModuleSnap == INVALID_HANDLE_VALUE) { wprintf(L"Format message failed with 0x%x\n", GetLastError()); } MODULEENTRY32 me32; me32.dwSize = sizeof(MODULEENTRY32); if (!Module32First(hModuleSnap, &me32)) { CloseHandle(hModuleSnap); return(FALSE); } _tprintf(TEXT("Mod base address: 0x%08X\n"), (DWORD)me32.modBaseAddr); _tprintf(TEXT("Mod base address: %ld\n"), (DWORD)me32.modBaseAddr); _tprintf(TEXT("\n")); CloseHandle(hModuleSnap); } free(titulo); return 1; }; // agente() -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
quando testei if (hSnap == INVALID_HANDLE_VALUE)printf("CreateToolhelp32Snapshot error\n\n"); descobrir que todos estão dando erros, mesmo executando como administrador não entendo porque não funciona comigo se fiz tudo certinho mas essa função não ajuda. a saída: o programa: #pragma once #include <windows.h> #include <tlhelp32.h> #include <tchar.h> #include <psapi.h> #include "stdio.h" #include "stdlib.h" int CALLBACK agente(HWND, LPARAM); int main(int argc, char** argv) { DWORD flags = 0; int inherit = 0; ACCESS_MASK access = READ_CONTROL; HDESK desktop = OpenInputDesktop(flags, inherit, access); if (desktop == NULL) return -1; EnumDesktopWindows(desktop, agente, 0); return 0; }; // main() int CALLBACK agente(HWND H, LPARAM P) { char buffer[512]; DWORD pai; LPDWORD pId = &pai; int n = GetWindowTextLengthA(H); char* titulo = (char*)malloc(1 + n); GetWindowTextA(H, titulo, 1 + n); DWORD window_thread = GetWindowThreadProcessId(H, pId); ACCESS_MASK access = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ; HANDLE hProcess = OpenProcess(access, FALSE, pai); if (hProcess == NULL) return -1; n = GetProcessImageFileNameA(hProcess, buffer, 512); if (n <= 0) return -2; char* p = buffer; for (int i = n; i > 1; i -= 1) { if (buffer[i] != '\\') continue; p = buffer + i + 1; break; } // for() if (strlen(titulo) > 0) { printf("Window thread: %8d\ntitulo: '%s'\npai:%8d\nExe: '%s'\n",window_thread, titulo, pai, p); HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, window_thread); if (hSnap == INVALID_HANDLE_VALUE)printf("CreateToolhelp32Snapshot error\n\n"); } free(titulo); return 1; }; // agente() -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
sim verdade mas seus 2 programas nehum printam na tela o module base adress voce so diz que tem o caminho mas nao mostra e eu estou tentando sair do 0 se é que voce entende. -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
ok vamos la entao if (strlen(titulo) > 0) { uintptr_t m = GetModuleInformation(hProcess); if (!m)std::cout << "fail "; printf("Window thread: %8d\ntitulo: '%s'\npai:%8d\nExe: '%s'\n' ", window_thread, titulo, pai, p); } -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
os outros argumentos são como mesmo? #pragma once #include <windows.h> #include <tlhelp32.h> #include <tchar.h> #include <psapi.h> #include "stdio.h" #include "stdlib.h" #include <iostream> using namespace std; int get_process_count() { HANDLE hProcessSnap; PROCESSENTRY32 pe32; pe32.dwSize = sizeof(PROCESSENTRY32); int total_processes = 0; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnap == INVALID_HANDLE_VALUE) { return(-1); } if (!Process32First(hProcessSnap, &pe32)) { CloseHandle(hProcessSnap); return(-2); } do total_processes += 1; while (Process32Next(hProcessSnap, &pe32)) GetModuleInformation(hProcessSnap,); CloseHandle(hProcessSnap); return(total_processes); }; // get_process_count() int main() { int a = get_process_count(); printf("%d",a); return 0; } -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
então se eu a minha função parar de retornar 0 e retornar algo vai retornar o mesmo numero que está saindo na variavel pai? ahsahsha perguntei isso antes -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
me ajude aí, tem vários dias tentando... posta uma solução. porque nao usaria? -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
meu compilador nem reclamou bem lembrado o return te que ser o ultimo argumento eu entendir que precisava ser assim porcausa que o compilador pede com ponteiro eu nunca usei essa função infelizmente ainda não, sinto que estou proximo mas estou aprendendo ainda então como seria o certo? não sou muito acostumado fazer isso -
C++ como usar o compilador do visualstudio no devc++
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
tem como desenhar? ou fazer um video tutorial? -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
tem um exemplo sobre isso? mas o nome está em char* gostei muito do conversor que postou mas o que fiz errado? #pragma once #include <windows.h> #include <tlhelp32.h> #include <tchar.h> #include <psapi.h> #include "stdio.h" #include "stdlib.h" #include <iostream> using namespace std; int CALLBACK agente(HWND, LPARAM); uintptr_t GetModuleBaseAddress(DWORD procId, const wchar_t* modName); const wchar_t* converte( char* s); int main(int argc, char** argv) { DWORD flags = 0; int inherit = 0; ACCESS_MASK access = READ_CONTROL; HDESK desktop = OpenInputDesktop(flags, inherit, access); if (desktop == NULL) return -1; EnumDesktopWindows(desktop, agente, 0); return 0; }; // main() int CALLBACK agente(HWND H, LPARAM P) { char buffer[512]; DWORD pai; LPDWORD pId = &pai; int n = GetWindowTextLengthA(H); char* titulo = (char*)malloc(1 + n); GetWindowTextA(H, titulo, 1 + n); DWORD window_thread = GetWindowThreadProcessId(H, pId); ACCESS_MASK access = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ; HANDLE hProcess = OpenProcess(access, FALSE, pai); if (hProcess == NULL) return -1; n = GetProcessImageFileNameA(hProcess, buffer, 512); if (n <= 0) return -2; char* p = buffer; for (int i = n; i > 1; i -= 1) { if (buffer[i] != '\\') continue; p = buffer + i + 1; break; } // for() if (strlen(titulo) > 0) { uintptr_t moduleBase = GetModuleBaseAddress(window_thread, converte(titulo)); printf("Window thread: %8d\ntitulo: '%s'\npai:%8d\nExe: '%s'\n' ", window_thread, titulo, pai, p); std::cout << "base adress " << moduleBase << "\n\n" << std::endl; } else { printf("Window thread: %8d\tpai:%8d\tExe: '%s'\n", window_thread, pai, p); } free(titulo); return 1; }; // agente() uintptr_t GetModuleBaseAddress(DWORD procId, const wchar_t* modName) { uintptr_t modBaseAddr = 0; HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId); if (hSnap != INVALID_HANDLE_VALUE) { MODULEENTRY32 modEntry; modEntry.dwSize = sizeof(modEntry); if (Module32First(hSnap, &modEntry)) { do { if (!_wcsicmp(modEntry.szModule, modName)) { modBaseAddr = (uintptr_t)modEntry.modBaseAddr; break; } } while (Module32Next(hSnap, &modEntry)); } } CloseHandle(hSnap); return modBaseAddr; } const wchar_t* converte( char* s) { wchar_t* vetor_wide; vetor_wide = (wchar_t*)malloc(200 * sizeof(char)); int res = MultiByteToWideChar(65001, MB_PRECOMPOSED, s, -1, vetor_wide, sizeof(vetor_wide)); return vetor_wide; free(vetor_wide); } -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
pode me ajudar a fazer isso então? não to conseguindo #include <stdio.h> #include <iostream> #include <string.h> int main(void) { std::string myString = "Master James"; const char* sz = myString.c_str(); size_t origsizes = strlen(sz) + 1; const size_t newsizes = 500; size_t convertedCharP = 0; wchar_t constTowchar[500]; mbstowcs(&convertedCharP, constTowchar, origsizes, sz, _TRUNCATE); std::wcout << constTowchar << std::endl; } -
quero saber se tem como usar o compilador do visualstudio no devc++ ou em outra ide mais leve porque o visual studio é muito pesado a as vezes dá uma travadinha
-
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
aqui continua dando 0 adicionado 1 minuto depois #pragma once #include <windows.h> #include <tlhelp32.h> #include <tchar.h> #include <psapi.h> #include "stdio.h" #include "stdlib.h" #include <iostream> using namespace std; int CALLBACK agente(HWND, LPARAM); uintptr_t GetModuleBaseAddress(DWORD procId, const wchar_t* modName); int main(int argc, char** argv) { DWORD flags = 0; int inherit = 0; ACCESS_MASK access = READ_CONTROL; HDESK desktop = OpenInputDesktop(flags, inherit, access); if (desktop == NULL) return -1; EnumDesktopWindows(desktop, agente, 0); return 0; }; // main() int CALLBACK agente(HWND H, LPARAM P) { char buffer[512]; DWORD pai; LPDWORD pId = &pai; int n = GetWindowTextLengthA(H); char* titulo = (char*)malloc(1 + n); GetWindowTextA(H, titulo, 1 + n); DWORD window_thread = GetWindowThreadProcessId(H, pId); ACCESS_MASK access = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ; HANDLE hProcess = OpenProcess(access, FALSE, pai); if (hProcess == NULL) return -1; n = GetProcessImageFileNameA(hProcess, buffer, 512); if (n <= 0) return -2; char* p = buffer; for (int i = n; i > 1; i -= 1) { if (buffer[i] != '\\') continue; p = buffer + i + 1; break; } // for() if (strlen(titulo) > 0) { uintptr_t moduleBase = GetModuleBaseAddress(window_thread, (const wchar_t*)titulo); printf("Window thread: %8d\ntitulo: '%s'\npai:%8d\nExe: '%s'\n' ", window_thread, titulo, pai, p); std::cout << "base adress " << moduleBase << "\n\n" << std:: endl; } else { printf("Window thread: %8d\tpai:%8d\tExe: '%s'\n", window_thread, pai, p); } free(titulo); return 1; }; // agente() uintptr_t GetModuleBaseAddress(DWORD procId, const wchar_t* modName) { uintptr_t modBaseAddr = 0; HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId); if (hSnap != INVALID_HANDLE_VALUE) { MODULEENTRY32 modEntry; modEntry.dwSize = sizeof(modEntry); if (Module32First(hSnap, &modEntry)) { do { if (!_wcsicmp((const wchar_t*)modEntry.szModule, modName)) { modBaseAddr = (uintptr_t)modEntry.modBaseAddr; break; } } while (Module32Next(hSnap, &modEntry)); } } CloseHandle(hSnap); return modBaseAddr; } -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
eu consegui rodar o programa que voce postou mas nao sei escrever Para uma lista de módulos de um processo eu ainda nao consigo entender bem esses dados typedefs do windows pra mim é complicado saber o caminho e nao conseguir fazer -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
não conseguir tem como mostrar o programa completo ? -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
deixa eu ver se entendir: o ModuleBaseAddress que não estou coneguindo imprimir na tela é o número que o seu programa mostra com o nome de pai? porque a função GetProcessImageFileNameA só é reconhecida pelo visualstudio? -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
me explique melhor sobre isso -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
hmm é bom saber disso mas creio que o problema é um pouco mais grave tentei fazer isso com um jogo que tenho aqui que foi desenvolvido em c++ e não funcionou nem em uma versão antiga nem na atual, e tambem em nehum outro mas nao vou desistir vou continuar tentando agradeço a ajuda. -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
sim eu ainda tenho ele guardado aqui desde que você postou a primeira vez, se eu for modifica-lo agora vou demorar queria resolver logo o problema pra depois fazer algo mais elegante. adicionado 2 minutos depois então essa função so consegue os apps que foram desenvolvidos antigamente? eu não sei a linguagem, mas tenho outros jogos que queria aplicar a técnica, funcionando em algum está bom pra mim -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
adicionado 0 minutos depois ProcID 3020 szModule: ApplicationFrameHost.exe szModule: ntdll.dll szModule: KERNEL32.DLL szModule: KERNELBASE.dll szModule: msvcrt.dll szModule: combase.dll szModule: ucrtbase.dll szModule: RPCRT4.dll szModule: bcryptPrimitives.dll szModule: dxgi.dll szModule: win32u.dll szModule: gdi32.dll szModule: gdi32full.dll szModule: msvcp_win.dll szModule: USER32.dll szModule: dxcore.dll szModule: cfgmgr32.dll szModule: IMM32.DLL szModule: kernel.appcore.dll szModule: ApplicationFrame.dll szModule: SHCORE.dll szModule: SHLWAPI.dll szModule: PROPSYS.dll szModule: OLEAUT32.dll szModule: sechost.dll szModule: twinapi.appcore.dll szModule: UxTheme.dll szModule: bcp47mrm.dll szModule: DEVOBJ.dll szModule: TWINAPI.dll szModule: d2d1.dll szModule: dwmapi.dll szModule: RMCLIENT.dll szModule: d3d11.dll szModule: OneCoreUAPCommonProxyStub.dll szModule: MSCTF.dll szModule: ADVAPI32.dll szModule: D3D10Warp.dll szModule: dcomp.dll szModule: CoreMessaging.dll szModule: UIAutomationCore.DLL szModule: SHELL32.dll szModule: windows.storage.dll szModule: profapi.dll szModule: powrprof.dll szModule: UMPDC.dll szModule: cryptsp.dll szModule: windows.staterepositorycore.dll szModule: windowscodecs.dll szModule: Windows.StateRepositoryPS.dll szModule: mrmcorer.dll szModule: iertutil.dll szModule: Bcrypt.dll szModule: Windows.UI.dll szModule: TextInputFramework.dll szModule: InputHost.dll szModule: CoreUIComponents.dll szModule: ntmarta.dll szModule: wintypes.dll szModule: UIAnimation.dll szModule: rometadata.dll szModule: OneCoreCommonProxyStub.dll szModule: ActXPrxy.dll Modulebase 0 -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
sim #include <tchar.h> #include <windows.h> #include <TlHelp32.h> #include <iostream> #include <Psapi.h> #include <wchar.h> using namespace std; uintptr_t GetModuleBaseAddress(DWORD procId, const wchar_t* modName){ uintptr_t modBaseAddr = 0; HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId); if (hSnap != INVALID_HANDLE_VALUE) { MODULEENTRY32W modEntry; modEntry.dwSize = sizeof(modEntry); if (Module32FirstW(hSnap, &modEntry)) { do { if (!_wcsicmp(modEntry.szModule,modName)) { modBaseAddr = (uintptr_t)modEntry.modBaseAddr; break; } } while (Module32NextW(hSnap, &modEntry)); } } //CloseHandle(hSnap); return modBaseAddr; } int main(){ HWND GameHWND = FindWindow(0,"calculadora"); DWORD procId = 0; GetWindowThreadProcessId(GameHWND, &procId); std::cout<<"ProcID "<< procId << std::endl; //Getmodulebaseaddress uintptr_t moduleBase = GetModuleBaseAddress(procId, L"calc.exe"); std::cout<<"Modulebase "<< moduleBase<< std::endl; cin.ignore(); } adicionado 0 minutos depois o jogo estava fechado quando fiz isso agora -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
@holifaca fiz todos testes que mandou e continua dando 0, não sei o que fazer, tanto a calculadora quanto a jogo. -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
sim a janela está dando bom o problema é o que mostrei no print -
C++ o que está errado nessa função
Mayrinck Bernardo respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais