Gỡ bá»? GoBack ko cần pass
Norton GoBack cấp 3 mức phân quyá»?n để quản lý chương trình, đó là Admin, User và None. 2 mức phân quyá»?n Admin và User dùng pass để bảo vệ, còn None thì ko cần.
Bài viết sau hướng dẫn cách thiết đặt phân quyá»?n quản lý vá»? None.
1. Chạy chương trình OllyDbg, mở file GBOption.exe trong thư mục "%Program Files%\Norton GoBack". Ä?ây là chương trình GoBack dùng để thiết đặt lại cách quản lý.
2. Chạy chương trình GBOption đang mở trong OllyDbg bằng cách nhấn F9. Một cửa sổ với tiêu đá»? "Norton GoBack Options" xuất hiện. Chá»?n tab thứ 2 và click vào "Change Level...". Xuất hiện một cửa sổ để thay đổi phân quyá»?n quản lý các chức năng của chương trình như : enable/disable, uninstall, autobackup... (Như đã nói ở trên, GoBack có 3 mức phân quyá»?n đó là : ADMIN, USER và NONE. Mặc định, chức năng uninstall được gán cho ADMIN, nghĩa là phải có phân quyá»?n ADMIN thì mới thực hiện chức năng uninstall được. Tương tự như vậy cho các chức năng khác). Sau khi thay đổi sang NONE hết, click OK, lúc này chương trình sẽ yêu cầu nhập pass ADMIN, và mục đích của chúng ta là phải bá»? qua được yêu cầu này.
3. Quay lại của sổ chương trình OllyDbg, jump đến address 0x0043697D (thực hiện bằng cách bấm Ctrl+G, nhập address và bấm OK). OllyDbg sẽ nhảy đến address này, và chúng ta có thể thấy đoạn code sau :
CODE00436970 > 8B0D A8964700 MOV ECX,DWORD PTR DS:[4796A8]
00436976 . 50 PUSH EAX
00436977 . 51 PUSH ECX
00436978 . E8 93E9FFFF CALL GBOption.00435310
0043697D . 83C4 08 ADD ESP,8
00436980 . 85C0 TEST EAX,EAX; eax == 0 nếu như đúng pass
00436982 . 0F954424 0F SETNE BYTE PTR SS:[ESP+F]
Chú ý tại addr 0x00436978, đây chính là hàm GoBack dùng để kiểm tra pass ADMIN. Sẽ trả vá»? true nếu pass đúng và ngược lại là false nếu pass sai. Bởi vì chúng ta ko có pass nên tất nhiên hàm này sẽ trả vá»? false. Vì thế thiết đặt breakpoint tại address 0x0043697D để thay đổi giá trị trả vá»? : phải chắc chắn con trá»? đang ở address 0x0043697D, bấm F2 để đặt breakpoint (dòng này sẽ đổ thành màu đá»?).
4. Nhập vào pass bất kì & và bấm OK. Lúc này quyá»?n điá»?u khiển được chuyển cho OllyDgb, nó chạy đến address đã set breakpoint và dừng lại. Nhìn vào cửa sổ các thanh ghi của OllyDbg, ta thấy EAX = 0x00000090. Double click vào nó, thay đổi EAX thành 0x00000000 và bấm F9 để chương trình tiếp tục chạy. Lúc này sẽ ko có bấy cứ warning message nào xuất hiện. Tất cả những setting mà bạn đã thay đổi đã được lưu lại. Bạn có thể kiểm tra lại bằng cách click vào "Change Level..".
5. Sau khi thay đổi tất cả sang phân quyá»?n NONE, bạn có thể làm bất cứ điá»?u gì đối Norton GoBack mà ko cần phải lo lắng đến việc há»?i pass ADMIN. Bạn có thể enable/disable it, uninstall... Let ẹnoy & Good luck!
CODEAutomatic loader:
/*
* AUTHOR: LightPhoenix
* EMAIL: light.phoenix@gmail.com
* DATE: 07/20/2005
*
* DESCRIPTION:
* This loader is used in bypassing admin password
* of Norton GoBack 4.0
*
* TODO:
* Patch in memory at @0x436980
* Origin: 0x85,0xC0,0x0F,0x95,0x44,0x24,0x0F
* Patch: 0x33,0xC0,0xC6,0x44,0x24,0x0F,0x00
*/
// Goback Loader.cpp
#include <windows.h>
LPTSTR strExecFile = TEXT("GBOptions.exe");
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HANDLE hFile;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
ZeroMemory(π, sizeof(pi));
//Find GBOptions.exe
if( (hFile = CreateFile(strExecFile, 0, FILE_SHARE_READ, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL) ) == INVALID_HANDLE_VALUE)
{
MessageBox(0, "GBOptions.exe does not exist", "Bypass Norton GoBack 4.0 by LightPhoenix[light.phoenix@gmail.com]", MB_ICONERROR);
return -1;
}
CloseHandle(hFile);
//createprocess with suspend
if( CreateProcess(NULL, strExecFile, NULL, NULL, FALSE,
CREATE_SUSPENDED, NULL, NULL, &si, π) == FALSE)
{
MessageBox(0, "Error executing GBOptions.exe", "Bypass Norton GoBack 4.0 by LightPhoenix[light.phoenix@gmail.com]", MB_ICONERROR);
return -1;
}
//patching
BYTE buf[10];
DWORD bytesRead, bytesWritten;
ReadProcessMemory(pi.hProcess, (LPVOID)0x436980, buf, 7, &bytesRead);
//Compare origin bytes
if( buf[0] == 0x85 && buf[1] == 0xC0 && buf[2] == 0x0F && buf[3] == 0x95 &&
buf[4] == 0x44 && buf[5] == 0x24 && buf[6] == 0x0F )
{
//Correct!
BYTE newData[] = {0x33, 0xC0, 0xC6, 0x44, 0x24, 0x0F, 0x00};
WriteProcessMemory(pi.hProcess, (LPVOID)0x436980, newData, sizeof(newData) /sizeof(newData[0]), &bytesWritten);
//resume
ResumeThread(pi.hThread);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
MessageBox(0, "Bypass succesfully!", "Bypass Norton GoBack 4.0 by LightPhoenix[light.phoenix@gmail.com]", MB_ICONINFORMATION);
}
else
{
//Failed
MessageBox(0, "Wrong size???\nWrong version!", "Bypass Norton GoBack 4.0 by LightPhoenix[light.phoenix@gmail.com]", MB_ICONERROR);
TerminateProcess(pi.hProcess, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
return 0;
}
AUTHOR: LightPhoenix of HVA
Re: Gỡ bá»? GoBack ko cần pass
bài viết rất ấn tượng, tiếc là máy ko có cài Go Back để test thử :D
Re: Gỡ bá»? GoBack ko cần pass
hay do
de toi thu xem sao
thanks