Rus. server

11/25/2009 11:31 ksimma#661
=) блин вот прочитал раза три и так не понял (видать не дано) как же из мхса сделать то что мы все хотим=)
1. чтобы перс бежал на место убитого моба и брал лут
2. нормально пета хилил и кормил
ну и еще 2 весчи которые если будут то просто супер
1. нажимает на кнопку"ближайщий город" после смерти
2. бежит на место кача =)
помогите прошу если ктото сделал чтото подобное дайте попользовать буду очень благодарен =)
11/25/2009 14:54 ksimma#662
ээээээ читал мой пост все было перечитано раза 3 =) а то что ты думаешь что некто не поможет это зря =) есть люди которые пойдут мне на встречу это точно =) и кто сказал что это безвоздмездно?
11/25/2009 14:55 Biga73#663
хех.. я это еще на 15-20 странице понял, одни понты и надувание щек, а если быть объективным то на ОТКРЫТОМ портале разговаривают пара тройка человек на внутреннем языке, с оговорками, и другими ужимками. Мое мнение что им самое место гденить на закрытом форуме друг с другом разговаривать, но они там видимо друг другу будут неинтересны....Хотя не все такие....
11/25/2009 21:26 Biga73#664
[Only registered and activated users can see links. Click Here To Register...]

Сорри за очень длинную ссылку - поиск ввел через гугл транслейт - по ссылке форум по ботам на пв - очень много кода, файлов и т.д.. там люди попроще чем здесь, как то даже симпатией проникся.....
пысы: странное дело, варезные группы типа релоадед или разора не умничают на разных форумах, клац и выложили кряку бесплатно, и реально опускают разные компании на миллионы... а вы тут о бабулесах...
11/25/2009 21:53 Biga73#665
[Only registered and activated users can see links. Click Here To Register...] - если ктонить может помочь - вытяните отсюда файлы ! я хоть и зарегистрировался на форуме, но видимо этого мало !
11/25/2009 22:36 Skand#666
Biga73, [Only registered and activated users can see links. Click Here To Register...], сжато в один архив.
11/25/2009 23:30 Biga73#667
спасибо... я нуб нубом ящик почтовый непроверил... возня с переводчиком утомила сильно...
11/25/2009 23:52 Biga73#668
[Only registered and activated users can see links. Click Here To Register...] (PWO_Scanner_2009)- довольно любопытная прога - прошу отписаться кто заставит ее ПОЛНОСТЬЮ заработать
11/26/2009 01:02 XXXXASD#669
Sdarowa pazani nu i kaneschno DEWUSCHKI
sdelal ja nakonezto swoy MT2 P server esli kto ho4et tose na mojom hama4i server poigrat
posaluysta pischiti mene na ICQ 566991577 WHOT TOLKO DLA RUSSKO GAWARASCHICH ile teh kotorie pitajutsa po russki gawarit :-)
11/26/2009 02:37 dwar#670
Вот, немного :) дополненное описание структуры чара.

Biga73
Конечно, сидеть и требовать от других, чтобы они пахали и выкладывали с полным описанием свой труд, - дело приятное. Так вместо рассуждений о том, что никто и ничего не дает, включайтесь в работу и привнесите хоть что-нибудь полезное.
11/26/2009 08:17 Biga73#671
видимо я это представляю себе так (включится в работу), сесть и заново написать с нуля то что уже написано давно и никем не используется, приведите на форуме рабочий код цель + действие (таргет+удар) и поверьте, это и будет той самой удочкой о которой тут рассуждали некоторые......
[Only registered and activated users can see links. Click Here To Register...] - тута лежит исходник вьетнамского бота (типа MHS) на autoit, и еще одного на Си (так и не понял куда и какие там смещения ставить...)
11/26/2009 15:40 johnic#672
Господа, кто знаком С++ помогите пожалуйста.
Не могу понять почему вылетает клиент при инжекции.
Code:
static DWORD WINAPI SelectMonster(LPCVOID lpParam)
{
	DWORD BaseAddress = 0x00976b1c;
	DWORD CallAddress = 0x005ae040;
	DWORD MonsterID = (DWORD)lpParam;
	__try
	{
		_asm
		{
		  mov eax, BaseAddress;
		  mov eax, dword ptr[eax];
		  mov edi, MonsterID
		  push edi;
		  mov ecx, dword ptr[eax+0x20];
		  add ecx, 0xEC;
		  mov edx, CallAddress;
		  call edx
		}
	}
	__except(1)
	{
	}
	return 0;
}

static void GiveMeNewTarget(int monID)
{
	HANDLE hProcess=NULL;
	HANDLE hThread=NULL;
	LPVOID ThreadCodeAddr=NULL;
	LPVOID Func=SelectMonster;
	LPVOID ThreadDataAddr=NULL;
	LPCVOID lpParam = NULL;
	DWORD Value = monID;
	lpParam = &Value;

			HWND windowHandle =FindWindow(0, "Element Client");
			DWORD dwProcessID;
			::GetWindowThreadProcessId(windowHandle,&dwProcessID);
			hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessID);
	if (!hProcess)
	{
		 //Error(_T("OpenProcess"));
		return;
	}
	ThreadCodeAddr=VirtualAllocEx(hProcess, NULL, 4096, MEM_COMMIT, PAGE_READWRITE);
	WriteProcessMemory (hProcess, ThreadCodeAddr, Func, 4096, NULL);
	ThreadDataAddr=VirtualAllocEx(hProcess, NULL, 256, MEM_COMMIT, PAGE_READWRITE);
	WriteProcessMemory (hProcess, ThreadDataAddr, lpParam, 256, NULL);
	[COLOR="Red"]hThread = CreateRemoteThread(hProcess, NULL, NULL,(LPTHREAD_START_ROUTINE)ThreadCodeAddr, ThreadDataAddr, NULL, NULL);[/COLOR]
	if (!hThread)
	 {
		 //Error(_T("CreateRemoteThread"));
		return;
	 }
	else
		WaitForSingleObject(hThread, INFINITE);
	CloseHandle(hThread);
	VirtualFreeEx(hProcess, ThreadCodeAddr, 4096, MEM_RELEASE);
	VirtualFreeEx(hProcess, ThreadDataAddr, 256, MEM_RELEASE);
	CloseHandle(hProcess);
}
Клиент вылетает в месте выделенным красным цветом. Но самое интересное, что этот же код работает на Дельфи.
Code:
procedure SelMonCall(MonID: PParams); Stdcall;
var
  Address: pointer;
  P1: DWORD;
begin
  Address := Pointer($005ae040);
  P1 := MonID^.Param1 ;
  asm
   mov eax, PW_BASE_ADDRESS
   mov eax, [eax]
   mov edi, P1
   push edi
   mov ecx, DWORD PTR [eax+$20]
   add ecx,$0EC
   call address
  end;
end;
Помогите плиз разобраться в чем загвоздка.
"dwar" предлагал записать все регистры общего назначения в стек до начала выполнения кода, а потом вернуть их значения в исходное состояние, т.е. в начале добавить pushad, а в конце popad. Это не помогло.
11/26/2009 16:16 dwar#673
Мдя… ВОТ код, которым пользуюсь я. точно работает в дельфи.

PHP Code:
//*********************//
// Injection Routines
//*********************//
procedure InjectFunc(HdlCardinalFuncPointeraParamsPointeraParamsSizecardinal);
var
  
BytesWrite  :cardinal;
  
ProcessId   :cardinal;
  
hThread     :cardinal;
  
ThreadId    :cardinal;
  
BytesRead   :cardinal;

  
ThreadAddr  pointer;
  
ParamAddr   pointer;
begin
  
if Hdl<>0 then
  begin
    aParamsSize 
:= 256;

  
// Выделяем в открытом процессе память под имя модуля
    
ThreadAddr := VirtualAllocEx(Hdl0, {SizeOf(@SelectMonster)} 4096MEM_COMMIT or MEM_RESERVEPAGE_EXECUTE_READWRITE);
    if 
ThreadAddr nil then Exit;

    
// Пишем имя модуля в его адресное пространство
    
WriteProcessMemory(HdlThreadAddrFunc, {SizeOf(@SelectMonster)} 4096BytesWrite);

    
// Выделяем память под структуру, которая передается нашей функции, под параметры, которые передаются функции
    
ParamAddr := VirtualAllocEx(HdlnilaParamsSizeMEM_COMMIT or MEM_RESERVEPAGE_EXECUTE_READWRITE);
    if 
ParamAddr nil then Exit;

    
// Пишем саму структуру
    
WriteProcessMemory(HdlParamAddraParamsaParamsSizeBytesWrite);

    
// Запускаем удаленный поток
    
hThread := CreateRemoteThread(Hdlnil0ThreadAddrParamAddr0ThreadId);
    if 
hThread 0  then Exit;

    
// Ждем пока удаленный поток отработает...
    
WaitForSingleObject(hThreadINFINITE);
    
VirtualFreeEx(HdlThreadAddr4096MEM_RELEASE);
      
VirtualFreeEx(HdlParamAddraParamsSizeMEM_RELEASE);
    
CloseHandle(hThread);
  
end
end
;

//*********************//
// Select the Monster
//*********************//
function SelectMonster(MonIDPParams):booleanstdcall;
var
  
PW_Call,
  
P1,
  
PW_BASE_ADDRDWORD;
begin
  PW_Call 
:= $005AE040;
  
PW_BASE_ADDR := $00976B1C;
  
P1 := MonID^.Param1 ;          // SN того кого хочешь взять в таргет
    
asm
        mov eax
PW_BASE_ADDR
        mov eax
, [eax]
        
mov ediP1
        push edi
        mov ecx
DWORD PTR [eax+$20]
        
add ecx,$0EC
        call PW_Call
    end
;
end
11/26/2009 17:39 silkytail#674
Quote:
Originally Posted by johnic View Post
Клиент вылетает в месте выделенным красным цветом.
вылетает на этом месте по вполне понятной причине - ты создаешь в процессе поток, который крешит клиент. :)
Почему вылетает код - тоже легко предположить. Ты копируешь кусок кода из своей программы в чужую в непонятное место. Так как тебе никто не давал гарантий, что код будет position-independent (а я весьма подозреваю, что при использовании try/catch он таким являться не будет), код может прыгть неизвестно куда.
Плюс если ты скомпилил в дебаг режиме, то тут есть нюансы - указатель на функцию может указывать не на функцию, а на переходник. Соответственно вместо кода ты копируешь непонятно что.
Ну и не очень понятно, что ты пытался сделать с ThreadDataAddr
11/26/2009 18:07 johnic#675
Дело в том, что этот же пример работает на делфи. Пример тому предыдущее сообщение, там и расписано, что и как передается. Плюс к тому вот этот пост [Only registered and activated users can see links. Click Here To Register...], я за основу брал от туда пример на С++