[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

expir
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 23 mar 2013, o 22:23
Płeć: Mężczyzna
Lokalizacja: Polska :D

[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

Post autor: expir »

Witam !
Mam pewien problem, nie jestem jakimś mega mózgiem i nie wiem jak takie coś zrobić.
Więc jest tak, adresy w pamięci procesu są od \(\displaystyle{ 0}\) do \(\displaystyle{ 7FFFFFFF}\) i są to hexy itd.Jak wiadomo, \(\displaystyle{ 7FFFFFFF}\) to raczej ogromna liczba.Tworzę prosty skaner pamięci na potrzeby własne, i muszę podzielić \(\displaystyle{ 7FFFFFFF}\) do tak jakby 6 grup, zaprezentuje to na 2 grupach liczby 10

Pierwsza grupa sprawdza liczby 0-5
Druga grupa sprawdza liczby 6-10

Muszę to zrobić, ponieważ skanowanie pamięci adres po adresie zajęło by gdzieś kilka dni, a ja muszę to zrobić w góra kilkanaście minut.Podzielenie skanowania do 6 grup i skanowanie w nich jednocześnie powinno rozwiązać ten problem.Zrobił by mi to ktoś ? Najlepiej było by do np 10 grup ale to pewnie dużo liczenia.
Z góry dziękuję za samo poświęcenie czasu na przeczytanie mojego tematu.
Ostatnio zmieniony 25 mar 2013, o 19:12 przez Afish, łącznie zmieniany 1 raz.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach [latex] [/latex].
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

Post autor: witekkq »

Skanowanie całych 6 grup dla całości podzielonej na 6 grup to ciągle przeszukiwanie całości... zgodnie z Twoim rozumowaniem kilka dni dzielone na 6 to parę minut Możesz próbować wielowątkowo to wykonać, bo 6 grup na jednym wątku zupełnie nic nie zmieni.

Na równe części jakbyś chciał podzielić to jest podzielne przez 0x15...

Dlaczego chcesz przeszukiwać w taki sposób pamięć?
expir
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 23 mar 2013, o 22:23
Płeć: Mężczyzna
Lokalizacja: Polska :D

[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

Post autor: expir »

Te grupy oczywiście zrobił bym w osobnych pętlach które działały by w osobnych wątkach, nie w jednym.Da się jakoś inaczej ? Głównie chodzi mi o to żeby przeskanować całą pamięć w max kilkadziesiąt sekund, potrzebuję automatycznie znaleźć adres z pewną tablicą bajtów, i potem zamienić jego wartość.Mógłbym też niby sprawdzać te strony (0x1000) bo podobno że jak na 0x1000 nic nie ma to i na 0x999 i wstecz nic nie ma, tylko to dalej zostaje pewnie jakieś kilkadziesiąt milionów kombinacji Jak to jest w CheatEngine zrobione że cała pamięć jest skanowana w mniej niż 10 sekund ?
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

Post autor: witekkq »

Zasadniczo nie myślałbym aż tak dużo nad sposobem... a skłaniałbym się że na jednym wątku wykona się to bardzo szybko... bo w sumie aż tak duża liczba porównań to nie będzie...
expir
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 23 mar 2013, o 22:23
Płeć: Mężczyzna
Lokalizacja: Polska :D

[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

Post autor: expir »

Mógłby mi ktoś pomóc jak tego hexa podzielić do 15 grup ? (równych) Podzielenie do 10 było by nadal wolne.
Nie mam pojęcia jak to zrobić na takiej ogromnej liczbie, i w dodatku hexie.Na liczbie \(\displaystyle{ 1000}\) podzielił bym to do 4 grup
1 grupa skanuje 0-250
2 grupa skanuje 250-500
3 grupa skanuje 500-750
4 grupa skanuje 750-1000

To takie coś to bez żadnych kalkulatorów, ale jak to zrobić na takiej ogromnej liczbie ? (no może przesadzam, ale raczej to jest dużo )

/Edit
Jedno z czym mam problem to te hexy, ściągnąłem sobie hex calc na androida, i jest tak:
\(\displaystyle{ 7FF FFFF}\) podzielić na \(\displaystyle{ 2}\) to \(\displaystyle{ 3FF FFFF}\)
Ale \(\displaystyle{ 3FF FFFF}\) razy \(\displaystyle{ 2}\) to już \(\displaystyle{ 7FF FFFE}\), jest tu jakaś różnica ?

A znowu \(\displaystyle{ 7FFFFFF}\) podzielone na 20 to \(\displaystyle{ 3F FFFF}\)
Ale już \(\displaystyle{ 3F FFFF}\) razy \(\displaystyle{ 20}\) to \(\displaystyle{ 7FF FFE0}\)
O co chodzi ?
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

Post autor: witekkq »

Gdyż tracona jest informacja o wartości po "przecinku" i ze świecą szukać kalkulatora który oblicza hexy jako floaty

Podzielić na równe możesz 21 grup, chociaż i tak się upieram że liczba nie jest duża i w jednym wątku pójdzie szybko.

Możesz skorzystać z jakiejś biblioteki wielowątkowej... OMP? i ona sama sobie podzieli pętle pomiędzy dostępne wątki w systemie, wystarczy jedynie implementacja przeszukiwania wewnątrz pętli.
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[Algorytmy] Skanowanie pamięci,podzielenie hexa do 6/10 grup

Post autor: miki999 »

\(\displaystyle{ 0x7FFFFFFF=0x80000000-1}\). To już łatwo zamienić na \(\displaystyle{ 2^n -1}\) (oczywiście licząc od zera mamy \(\displaystyle{ 2^n}\) adresów). Najłatwiej jest wykonać dzielenie przez \(\displaystyle{ 2^a}\), ponieważ jest to nic innego jak przesunięcie bitowe >> \(\displaystyle{ a}\) razy.
ODPOWIEDZ