Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
tommmmmm
Sędziwy Jeż
Sędziwy Jeż
Posty: 45
Rejestracja: 04 paź 2008, 11:20
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Post autor: tommmmmm »

Powiedzmy, że jest o taki prosty kod w c++

Kod: Zaznacz cały

void WriteToXYZ(bool on) {
	DWORD address = 0x00961B6C;
	unsigned char fgmOn[8] = "\x0F\x94";
	unsigned char fgmOff[8] = "\x0F\x95";
	HWND XYZwindow = FindWindow(0, "XYZ");
	if (XYZwindow == 0) {
		MessageBox(0, "Cannot find XYZ open", "XYZ Writer", 0);
		ExitProcess(0);
	} else {
		DWORD pID;
		GetWindowThreadProcessId(XYZwindow, &pID);
		HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
		if (on) {
			WriteProcessMemory(hProc, (LPVOID)address, fgmOn, 2, NULL);
		} else {
			WriteProcessMemory(hProc, (LPVOID)address, fgmOff, 2, NULL);
		}
	}
}
I się zastanawiałem jak to zapisać w Javie. Bo googluje googluje i jakoś nie mogę tego wygooglować.
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Re: Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Post autor: beluosus »

Spróbuj użyć Java Native Access (lub Java Native Interface).
TJB
Sędziwy Jeż
Sędziwy Jeż
Posty: 36
Rejestracja: 05 paź 2010, 17:24
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Post autor: TJB »

Z ciekawości, dlaczego chcesz pisać do pamięci programów za pomocą Javy?
tommmmmm
Sędziwy Jeż
Sędziwy Jeż
Posty: 45
Rejestracja: 04 paź 2008, 11:20
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Re: Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Post autor: tommmmmm »

TJB pisze:Z ciekawości, dlaczego chcesz pisać do pamięci programów za pomocą Javy?
mimo iż minęło już 3 miechy od ostatniej odpowiedzi, mimo wszystko postaram się odpowiedzieć na bieżąco:

Ponieważ autohotkey może automatyzować tylko jeden proces na raz. A jeśli chce się wykonać dobry bug test to miłoby było wykonywać kilkanaście testów na raz. A po drugie - wszelkiego typu boty do wszelkiego typu zadań - lepiej działają gdy się je zapuści wielokrotnie niż pojedynczo.

A dlaczego za pomocą Javy? Ano dlatego że moi wykładowcy na studiach bardzo mocno mnie zrazili (uraz psychiczny) do smalltalka, fortranu, i C/C++/pochodnych. Więc zostaje mi Java.
TJB
Sędziwy Jeż
Sędziwy Jeż
Posty: 36
Rejestracja: 05 paź 2010, 17:24
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Post autor: TJB »

Dzięki za błysk-odpowiedź mimo wykopania wątku z poprzedniej pory roku :-) Przyznaję, mimo czasu chciałem zapytać. Zaintrygował mnie wybór Javy do takiego zadania. Jak pisano ten język celowo zrezygnowano ze wskaźników by nie było zabiegów z pamięcią.

Nie chciałbyś spróbować zrobić tego jakimś Perlem / Pythonem?
tommmmmm
Sędziwy Jeż
Sędziwy Jeż
Posty: 45
Rejestracja: 04 paź 2008, 11:20
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Re: Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Post autor: tommmmmm »

Perl jest jak grep w bashu - jedna wielka ciapanina znaczków, którą zapomina się co znaczy po tygodniu... a odkodowanie tego to lepiej nie mówić.

A co do pythona - ten język wydaje mi się jakoś mało popularny/mało rozbudowany. Jeszcze nigdy się nim nie interesowałem.
TJB
Sędziwy Jeż
Sędziwy Jeż
Posty: 36
Rejestracja: 05 paź 2010, 17:24
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Re: Pisanie do pamięci programów za pomocą Javy. Jak to zrobić?

Post autor: TJB »

Ad Perl: to częsty pogląd, który jest często prawdą. Ale można w Perlu napisać dobry (w znaczeniu: czytelny) kod. Można też pisać Perla obiektowego. No i ilość bibliotek jest wprost imponująca. A przy tym wydaje mi się, że zastosowania Perla czynią go lepszym do pisania do pamięci niż Java - ale nie mam zamiaru jakoś szczególnie spierać się w tej kwestii.

Ad Python: żeby daleko nie szukać, weźmy aktualizacje Ubuntu. Co i rusz przewija się tam coś w Pythonie. To jeden powód, dla którego go zasugerowałem. Drugi to fakt, że widziałem paru gości piszących w Pythonie podczas Zlotu Koderów w marcu tego roku i robiło to wrażenie. Inna sprawa to fakt, że to byli dobrzy goście, zatem ich kod na pewno robił wrażenie. ;-)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość