PDA

View Full Version : Gỡ b? GoBack ko cần pass



YoungPsychologist
12-22-2005, 10:59 AM
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

ronaldo
12-23-2005, 11:23 PM
bài viết rất ấn tượng, tiếc là máy ko có cài Go Back để test thử :D

yphuong13lsvn
01-03-2006, 10:31 AM
hay do
de toi thu xem sao
thanks