Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 29.03.2011, 16:36   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Смех Прога для подмены стауса(mra)

кароч,давно хотел написать прогу(тип вирусняк),которая бы подменяла статус в агенте(тупишь перехватывала идентификатор по mra и подменяла его).
как сделать,тупо менять в памяти нет смысла,да??
__________________
Сайт: http://iexpo.ml

Последний раз редактировалось RegIon, 30.03.2011 в 11:55.
(Offline)
 
Ответить с цитированием
Старый 29.03.2011, 17:13   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Прога для подмены стауса(mra)

Костян, ты же в школе учишься, практикуй своё правописание пожалуйста. В топике пропускаешь буквы и пробелы, а в посту вообще ужас какой-то. Мы тут не сброд неучей и не грамотеев..
Хотя бы поставь плагин на броузер для проверки, ставится обычно очень просто и быстро.
(Offline)
 
Ответить с цитированием
Старый 30.03.2011, 10:28   #3
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: Прога для подмены стауса(mra)

Википедия на запрос MRA открыла страницу про мейл-агент. И каким же образом ты собираешься перехватывать идентификатор по MRA? И вообще - я ничего не понял. Ставь вопрос конкретно.
__________________

(Offline)
 
Ответить с цитированием
Старый 30.03.2011, 10:40   #4
Leowey
Знающий
 
Аватар для Leowey
 
Регистрация: 08.11.2010
Адрес: Москва
Сообщений: 285
Написано 78 полезных сообщений
(для 182 пользователей)
Ответ: Прога для подмены стауса(mra)

2костян:
Он давно обиделся на тебя .
(Offline)
 
Ответить с цитированием
Старый 30.03.2011, 11:56   #5
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Прога для подмены стауса(mra)

Википедия на запрос MRA открыла страницу про мейл-агент. И каким же образом ты собираешься перехватывать идентификатор по MRA? И вообще - я ничего не понял. Ставь вопрос конкретно.
Вроде mra и протокол.....
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 30.03.2011, 12:51   #6
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Прога для подмены стауса(mra)

Сообщение от Костян Посмотреть сообщение
(тупишь перехватывала идентификатор по mra и подменяла его).
Тупишь? Кто тупит? Ты о чём?

Сообщение от Костян Посмотреть сообщение
тупо менять в памяти нет смысла,да??
Почему же? Есть смысл. Но искать запаришься.

Сообщение от Костян Посмотреть сообщение
перехватывала идентификатор по mra и подменяла его
По сети чтоль?
Тогда для начала почитай:
http://agent.mail.ru/ru/developers/protocol.html
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 30.03.2011, 17:56   #7
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Прога для подмены стауса(mra)

Сообщение от Leowey Посмотреть сообщение
2костян:
Он давно обиделся на тебя .
>Он давно обиделся на тебя
>обиделся
(Offline)
 
Ответить с цитированием
Старый 30.03.2011, 19:35   #8
Venom2
 
Сообщений: n/a
Ответ: Прога для подмены стауса(mra)

Сообщение от baton4ik Посмотреть сообщение
>Он давно обиделся на тебя
>обиделся
все верно, через е
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо за это полезное сообщение:
Android (04.04.2011), baton4ik (30.03.2011), h1dd3n (30.03.2011)
Старый 31.03.2011, 13:52   #9
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Прога для подмены стауса(mra)

Почему же? Есть смысл. Но искать запаришься.
артмани в зубы и пошел,вот я думаю он(статус) будет фиксированный адрес иметь в памяти (у самого квип,агент лень ставить)..
и еще косяк,а если несколько аккаунтов??То как??
Ха,ещё чему-то учить будут..
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 31.03.2011, 13:59   #10
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Прога для подмены стауса(mra)

КОМПИЛИРУЙ СПЛОЕТЫ
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 31.03.2011, 14:11   #11
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Прога для подмены стауса(mra)

КОМПИЛИРУЙ СПЛОЕТЫ
Что??
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 31.03.2011, 16:43   #12
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: Прога для подмены стауса(mra)

http://ru.wikipedia.org/wiki/%D0%AD%...BE%D0%B9%D1%82
__________________

(Offline)
 
Ответить с цитированием
Старый 01.04.2011, 13:24   #13
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Прога для подмены стауса(mra)

Нарыл код для поиска в памяти,не коипилит(с++)
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
#define PROC_NAME "n00b.exe"
#define MAX_READ 128

int fMatchCheck (char *mainstrint mainstrLenchar *checkstrint checkstrLen)
{
/*
Проверка наличия подстроки в строке.
При этом под "строкой" подразумевается
просто последовательность байт.
*/
BOOL fmcret=TRUE;
int x,y;

for (
x=0x<mainstrLenx++) {
fmcret=TRUE;

for (
y=0y<checkstrLeny++) {
if (
checkstr[y]!=mainstr[x+y]) {
fmcret=FALSE;
break;
}
}

if (
fmcret)
return 
x+checkstrLen;
}
return -
1;
}

char *getMem(char *buffsize_t buffLenint fromint to)
{
/*
Выделяем у себя память, в которой будем хранить
копию данных из памяти чужой программы.
*/
size_t ourSize buffLen*2;
char *ret = (char*)malloc(ourSize);

memset(ret0ourSize);

memcpy(ret, &buff[from], buffLen-from);
memset(&ret[to-from], 0to-from);

return 
ret;
}

char *delMem(char *buffsize_t buffLenint fromint to)
{
/*
Освобождаем память.
*/
size_t ourSize buffLen*2;
char *ret = (char*)malloc(ourSize);
int i,x=0;

memset(ret0ourSize);

for (
i=0i<buffLeni++) {
if (!(
i>=from&&i<to)) {
ret[x]=buff[i];
x++;
}
}

return 
ret;
}

char *addMem(char *buffsize_t buffLenchar *buffToAddsize_t addLenint addFrom)
{
/*
Запись в память.
*/
size_t ourSize = (buffLen+addLen)*2;
char *ret = (char*)malloc(ourSize);
int i,x=0;

memset(ret0ourSize);

memcpy(retgetMem(buffbuffLen0addFrom), addFrom);

x=0;
for (
i=addFromi<addLen+addFromi++) {
ret[i]=buffToAdd[x];
x++;
}

x=0;
for (
ii<addFrom+buffLeni++) {
ret[i]=buff[addFrom+x];
x++;
}

return 
ret;
}

char *replaceMem(char *buffsize_t buffLenint fromint tochar *replaceBuffsize_t replaceLen)
{
/*
Заменяем найденную "строку" на свою.
*/
size_t ourSize = (buffLen)*2;
char *ret = (char*)malloc(ourSize);

memset(ret0ourSize);

memcpy(retbuffbuffLen); // copy 'buff' into 'ret'

ret delMem(retbuffLenfromto); // delete all memory from 'ret' betwen 'from' and 'to'
ret addMem(retbuffLen-to+fromreplaceBuffreplaceLenfrom);

return 
ret;
}

DWORD fGetPIDchar *szProcessName )
{
PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)};
HANDLE ss;
DWORD dwRet 0;

ss CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS0);

if (
ss) {
if (
Process32First(ss, &pe))
while (
Process32Next(ss, &pe)) {
if (!
strcmp(pe.szExeFileszProcessName)) {
dwRet pe.th32ProcessID;
break;
}
CloseHandless );
}
return 
dwRet;
}

BOOL DoRtlAdjustPrivilege()
{
/*
Важная функция. Получаем привилегии дебаггера.
Именно это позволит нам получить нужную информацию
о доступности памяти.
*/
#define SE_DEBUG_PRIVILEGE 20L
#define AdjustCurrentProcess 0
BOOL bPrev FALSE;
LONG (WINAPI *RtlAdjustPrivilege)(DWORDBOOLINTPBOOL);
*(
FARPROC *)&RtlAdjustPrivilege GetProcAddress(GetModuleHandle("ntdll.dll"), "RtlAdjustPrivilege");
if(!
RtlAdjustPrivilege) return FALSE;
RtlAdjustPrivilege(SE_DEBUG_PRIVILEGETRUEAdjustCurrentProcess, &bPrev);
return 
TRUE;
}

main()
{
/*** VARIABLES ***/
HANDLE hProc;

MEMORY_BASIC_INFORMATION mbi;
SYSTEM_INFO msi;
ZeroMemory(&mbisizeof(mbi));
GetSystemInfo(&msi);
/*
Получаем информацию о памяти в текущей системе.
*/

DWORD dwRead=0;

char *lpData = (VOID*)GlobalAlloc(GMEM_FIXEDMAX_READ)
string lpOrig "Information"
string lpReplacement[] = "habrahabr.ru"// на что меняем

int x,at;
/*****************/

if (!lpData)
return -
1;

ZeroMemory(lpDataMAX_READ);

// открываем процесс
do {
hProc OpenProcess (PROCESS_ALL_ACCESS,
FALSE,
fGetPID(PROC_NAME));
if (!
hProc) {
Sleep(500);
puts ("Cant open process!\n""Press any key to retry.\n");
getch();
}
} while(!
hProc);

if(
DoRtlAdjustPrivilege()){
/*
Привилегии отладчика для работы с памятью.
*/

puts ("Process opened sucessfully\n"
"Scanning memory...\n"
);

for(
LPBYTE lpAddress = (LPBYTE)msi.lpMinimumApplicationAddress;
lpAddress <= (LPBYTE)msi.lpMaximumApplicationAddress;
lpAddress += mbi.RegionSize){
/*
Этот цикл отвечает как раз за то, что наша программа не совершит
лишних действий. Память в Windows в процессе делится на "регионы".
У каждого региона свой уровень доступа: к какому-то доступ запрещен,
какой-то можно только прочитать. Нам нужны регионы доступные для записи.
Это позволит в разы ускорить работу поиска по памяти и избежать ошибок
записи в память. Именно так работает ArtMoney.
*/

if(VirtualQueryEx(fGetPID(PROC_NAME), lpAddress, &mbisizeof(mbi))){
/*
Узнаем о текущем регионе памяти.
*/

if((mbi.Protect PAGE_READWRITE) || (mbi.Protect PAGE_WRITECOPY)){
/*
Если он доступен для записи, работаем с ним.
*/

for (lpAddress;lpAddress<(lpAddress dwSize);
lpAddress+=0x00000100) {
/*
Проходим по адресам указателей в памяти чужого процесса от начала, до конца региона
и проверяем, не в них ли строка поиска.
*/

dwRead=0;
if (
ReadProcessMemory (hProc,
(
LPCVOID)lpAddress,
lpData,
MAX_READ,
&
dwRead) == TRUE) {
/*
Читаем по 128 байт из памяти чужого процесса от начала
и проверяем, не в них ли строка поиска.
*/

if (fMatchCheck(lpDatadwReadlpOrigsizeof(lpOrig)-1)!=-1) {
/*Нашли, сообщим об успехе и поменяем в чужом процессе искомую строку на нашу.*/
printf ("MEMORY ADDRESS: 0x00%x\n"
"DATA:\n"
lpAddress);
for (
x=0;x<dwRead;x++) {
printf("%c"lpData[x]);
puts("\n");

at fMatchCheck (lpData,dwRead,lpOrig,sizeof(lpOrig)-1);

if (
at!=-1) {
at-=sizeof(lpOrig)-1;

lpData replaceMem (lpData,
dwRead,
at,
at+sizeof(lpOrig)-1,
lpReplacement,
/*sizeof(lpReplacement)-1*/sizeof(lpOrig)-1);

puts("REPLACEMENT DATA:");
for (
x=0;x<dwRead-sizeof(lpOrig)-1+sizeof(lpReplacement)-1;x++) {
printf("%c"lpData[x]);
puts("\n");

puts("Replacing memory...");
if (
WriteProcessMemory (hProc,
(
LPVOID)lpAddress,
lpData,
/*dwRead-sizeof(lpOrig)-1+sizeof(lpReplacement)-1*/dwRead,
&
dwRead)) {
puts("Success.\n");
} else 
puts("Error.\n");
} else 
puts("Error.\n");

}

}
}

}else 
puts("Error.\n");
}else 
puts("Error.\n");
}
}else 
puts("Error.\n");

// // // // //
// Cleanup
if (hProc)
CloseHandle(hProc);
if (
lpData)
GlobalFree(lpData);
///////////////

puts ("Done. Press any key to quit...");
return 
getch();

__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 01.04.2011, 15:17   #14
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: Прога для подмены стауса(mra)

Нарыл код для поиска в памяти,не коипилит(с++)
ок...
(Offline)
 
Ответить с цитированием
Старый 01.04.2011, 19:53   #15
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Прога для подмены стауса(mra)

Сообщение от Костян Посмотреть сообщение
не коипилит
Нажми F5
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо baton4ik за это полезное сообщение:
Android (04.04.2011), den (01.04.2011), falcon (02.04.2011), moka (01.04.2011), Randomize (11.04.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:00.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com