Tải bản đầy đủ (.pdf) (7 trang)

Cracker Handbook 1.0 part 4 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (142.48 KB, 7 trang )


Cú pháp khai báo tổng quát:
Quote:
[Public | Private] Declare Sub | Function Name Lib “libname” [Alias “aliasname”]
[(args)] [As Type]
Quote:
- Khai báo Public | Private tương ứng việc khai vùng hoạt động của hàm. Với
Public hàm có thể gọi từ ngoài module khai báo nó ( trong cả chương trình ),
ngược lại Private chỉ cho phép sử dụng trong module khai báo nó. Mặc định của
Visual Basic khi không khai báo Public/Private là Public. Ở đây có thể sử dụng kĩ
thuật “wrapper”. Với kĩ thuật này bạn khai báo hàm APIs trong module với
Private. Sau đó code một hàm gọi nó rồi khai Public cho hàm này. - Declare Sub |
Function: Tương ứng khai báo hàm này là Function or Sub. - Name: Tên của hàm
sẽ được dùng để gọi. - Lib “libname”: Tên thư viện DLL chứa hàm cần gọi. -
Alias: Tên hàm được export ra trong thư viện DLL. Lưu ý phải đúng chính xác tên
hàm được export. - args: Các đối số của hàm. Đây cũng là phần quyết định quan
trọng. Phải khai báo tuyệt đối chính xác (ByVal/ByRef, Data type,v v.). Trong
trường hợp khai báo sai có khả năng làm crash Windows bằng lỗi GPF ( General
Protect Fault ). - As Type: Kiểu giá trị trả về khi sử dụng hàm là Function
Examples: ( Code by Visual Basic 6.0 )
1. Hàm FindWindow: Trả về Handle của một Window khi biết một/cả hai đối số.
Khai báo (code trong module mdlAPIs.mdl)
Quote:
Private Declare Function Lib “user32” Alias “FindWindowA” (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Quote:
> Hàm khai báo với tên FindWindow được export từ thư viện user32.dll (với các
thư viện dll chuẩn của Windows không cần khai FullName ) với tên
FindWindowA.
> Các đối số của hàm là lpClassName As String và lpWindowName. Cả hai đều
là ByVal.


> Trả về giá trị là kiểu Long.
> Về việc sử dụng hàm: Có thể thấy ở đây hàm này nhận 2 args truyền vào. Tuy
nhiên ở đây bạn có thể truyền vào giá trị 1 trong 2 hàm là đủ (có thể truyền luôn cả
2 nếu muốn). Các đối số ở đây là tên Class hoặc Caption của Windows cần lấy
Handle Với arg không dùng đến thì đưa giá trị vbNullString hoặc 1 giá trị Null
(lưu ý: Giá trị Null hiểu theo ngôn ngữ C, không phải là vbNull).
Quote:
Public Function wrpFindWindow (Optional ClsName As String = “”, Optional
Caption As String = ”” ) As Long wrpFindWindow = FindWindow(ClsName,
Caption) End Function
Quote:
> “Wrapp” lại bằng Function wrpFindWindow *****Có thể sử dụng API Viewer
của Visual Basic 6.0 để lấy các Declare sẳn có và paste vào chương trình… Tuy
nhiên như vậy bạn sẽ phụ thuộc vào API Viewer, trong khi không ít hàm hoàn toàn
không có trong đây. Bạn chí được thông tin trong MSDN. Do đó cần biết cách tự
khai báo. Để khai báo cần nắm rõ chút về cách định nghĩa khai báo theo kiểu
Hungarian
Quote:
Sơ lược về định nghĩa Hungarian: ( Sử dụng nguyên văn tài liệu ) API mong đợi
một trong hai điều ở các đối số của nó: Một giá trị hoặc địa chỉ của một biến chứa
một giá trị. Chìa khóa để biết API mong đợi một giá trị hay một địa chỉ nằm ở định
nghĩa Hungarian của tên thông số trong prototype của hàm liệt kê trong SDK. Nếu
tên thông số có tiếp đầu ngữ “lp”, có nghĩa là API mong đợi một địa chỉ. Trong
định nghĩa C Hungarian, “lp” viết tắt cho một Long Pointer – Một địa chỉ bộ nhớ.
Thường gặp nhất là “lpsz”, tức một con trỏ long đến một chuỗi kết thúc bằng Null
( một khai báo ByVal As String trong Visual Basic ), nhưng bạn cũng có thể đưa
một “lp” cho API với tất cả các kiểu ( trừ một string ), dùng ByRef để gửi địa chỉ
biến của bạn cho API. Trong thực tế bạn có thể sử dụng các chương trình khai báo
sẵn APIs và chỉ việc copy & paste vào chương trình. Tuy nhiên nên biết sơ về cách
khai báo.

Một số APIs các bạn thường gặp trong quá trình Cracking là:
Quote:
Int GetWindowText(HWND hWnd, LPTSTR lpString, int nMaxCount);
Quote:
Hàm này nhận 3 đối số là:
- Handle Control chứa nội dung cần Get
- Biến đệm chứa nội dung sẽ được lấy và trả về
- Max Chars sẽ lấy, nếu vượt quá số max này sẽ truncate đi Thường thì hàm này
dùng với Alias GetWindowTextA
Tương tự GetWindowText là GetDlgItemText (được sử dụng cho việc lấy Text từ
control trong Dialog)
Quote:
UINT GetDlgItemText(HWND hDlg, int nIDDlgItem, LPTSTR lpString, int
nMaxCount );
các APIs khác


Quote:
int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT
uType );
BOOL MessageBeep(UINT uType );
Các khá hữu dụng để lần ra chỗ cần bp và từ đó trace ngược về Module Protect
Basic Rule of Cracking

Mình xin mạn phép post bài này của một Cracker người nước ngoài . Đây là một
bài viết mà mình cho là rất có ích cho các Newbie chúng ta khi muốn trở thành một
cracker hay chỉ muốn khám phá những điều mới mẻ mà chúng ta chưa từng biết .
Những điều mà chúng ta sẽ không thể tìm được ở bất kì một cuốn sách nào……Ok
Come on!
~~~~~~~~~~~~~~


Tutorial Type : Essay
Tutorial Topic : Basic rules of cracking
Utilities : Brain (yes, i know, its hard to get one but you have to !)
Music : Final Countdown (no bob today ;p)
Written By : ParaBytes (the one and only ;p)
Date : Nov. 18th, 2001

Lets begin

lets clear thing :
+ +
the reason i wrote this essay is to make clear what it takes to be a good cracker,
i'm an expirianced cracker, but i've seen the best crackers, and i know what it takes,
but i nkow it only now
so i wrote this essay so newbies who have no xp will able to enjoy my basic
knowledge
ParaBytes.

lets start :
+ +
well this is not a real tutorial, its more kind of an essay
today we will review the basic of cracking
it is important for you to know the basic rules of cracking, this basic rules will
help ya to become a good cracker

1. you cant crack everything,
remember this, always. you are not the el-mighty, you'll never know enough

2. EVERYTHING IS CRACKABLE.

everything become crackable sometimes, if we see asprotect 1.3 almost impossible,
in a year or two, every newbie will inject funtions threw this protector

3. Share your knowledge, if you learnt some tricks, tell them to others, write
tutorials, essays, crackmes do all you can do to help the next crackers generation in
cracking

4. read MORE tutorials, as rule no. 1 says, we are not the best, but other crackers
know things we dont and we know things they dont so keep on reading tutorials.

5. learn to code, if you'll know how a complicated program works, and how its
coded, it will be easier to crack it

6. dont be one of the gang, be the rebel, use alternate tools, so the sharewares
coders wont be able to blick ya, find a tool, learn it, be a master of the tool, be the
tool

7. learn tools, dont be just a rebel, be a rebel that know the usual tools, like me
i use w32dasm as debugger, almost no one use it so no anti-coding but i know
sice

8. if you'll join groups, even as trial member, you'll meet people, they'll probably
help you, you will might be able to help them as well, finally, you'll get to know
the protections you are working on better and better

9. keep yourself updated, this one is very important, you should be using the latest
tools, learn the newest protections, start a hotmail that will use ya to be a member
in a mailing list of sharewares coders, learn thier techniques, be almost one of
them


10. discover things by yourself, teach yourself on tricks you've found and you
never read about'em. dont forget to teach other these tricks, self-learning is the
best

11. don’t ripp other people's work, they've worked very hard on thier releases,
don’t ripp the cracks/keygens/create serials from other peoples keygens its not fair.

12. code more, read more, crack more, write more, be cracker.


Ending :
+ +

this is an essay on the basics you should remember on being a cracker, a good one.
you dont have to obey all of them, but you shuold remember all of them

and just remeber, a looser is a good cracker, as long they keep obeying rule 11.

so, read more tutorials.



Mình xin dịch tạm bài viết trên như sau ( hi vọng là với vốn tiếng Anh của
mình có thể giúp các bạn hiều được phần nào_ hì hì vì tiếng Anh ko phải tiếng
mẹ đẻ của chúng ta mà).

He he các bạn có thấy cái dòng Utilities : Brain (yes, i know, its hard to get
one but you have to !): ngay ở đầu không . Lúc đầu mình cứ nghĩ đó là một Soft
dùng để crack nhưng suy nghĩ một lúc thì cũng hiểu ra , mọi công việc mà chúng ta
muốn thực hiện đều qua một trung tâm điều khiển là bộ não của chúng ta ( Brain).

Những người Code ra phần mềm cố gắng dùng bộ não( trí óc ) của họ để code ra
được một cái ổ khóa để bảo vệ phần mềm của họ . Còn chúng ta thì sao ,chúng ta
cũng sử dụng bộ não ( trí óc) của chúng ta để là việc , nhưng công việc của chúng
ta hoàn toàn ngược lại với họ . Chúng ta cố gắng tìm ra trong hàng trăm cái chìa
khóa có thể mở được cái ổ khóa đó , và chiếc chìa khóa vàng đó là của chúng ta .
Đúng vậy trí óc của con người là rất quan trọng trong mọi công việc chứ không
riêng gì Crack phải không các bạn
Ok Let’s Translate : the basic rules of cracking , to help ya become a good cracker.

1.Hãy luôn luôn nhớ lấy điều này , bạn không thể bẻ khóa tất cả các phần
mềm.Bạn không phải là người giỏi nhất , những kiến thức mà bạn biết được không
bao giờ là đủ

2.Mọi phần mềm đều có thể crack được. Thỉnh thoảng , mọi thứ đều có thể được
crack nếu chúng ta hiểu không rõ ràng về asprotect 1.3 . Trong vòng một hoặc hai
năm ,tất cả các newbies sẽ thêm vào những đoạn mã ( những hàm) để phá vỡ sư
bảo vệ này ( Ý của tác giả chắc là đề cập đến việc Unpacking đúng không các bạn)

3.Hãy chia sẻ sự hiểu biết của bạn , nếu bạn đã tìm được một vài mẹo nhỏ( thủ
thuật) hãy nói cho những người khác để chia sẻ những gì mà bạn biết được , hãy
viết các bài hướng dẫn, các thủ thuật , và tất cả những gì bạn có thể làm được để
giúp đỡ các thể hệ cracker tiếp theo về cracking.

4.Hãy đọc thật nhiều các bài hướng dẫn , đây dường như là một quy luật không thể
phá bỏ.Trước tiên cũng phải nói rằng chúng ta chưa chắc đã là người giỏi nhất,bởi
vì những điều mà các cracker khác biết thì có thể chúng ta lại không biết và ngựơc
lại những điều mà chúng ta biết thì cỏ thể các cracker khác lại không biết . Vì vậy
hãy thường xuyên đọc các bài hướng dẫn.

5.Hãy học để code , nếu các bạn có thể biết được một chương trình phức tạp nó

hoạt động thế nào và nó được code thế nào thì thật quá dễ dàng để crack nó ( Do
đó bạn phải biết code vd Code KeyGen chẳng hạn : chính là chúng ta nghiên
cứu quá trình tạo Key của chương trình đó ra sao , sau đó dựa vào đó chúng ta viết
một Keygen sao cho nhập vào tên bất kì thì chương trình có thể tạo ra được Serial
tương ứng vơi Username nhập vào )

6.Không nên chỉ là những kẻ chỉ biết sử dụng các công cụ luân phiên, hãy tìm lấy
một công cụ , học lấy nó và làm chủ nó

7.Hãy biết thêm các công cụ khác , đừng chỉ biết các công cụ thông thường như
Windasm, bạn nên biết thêm cả các chương trình dùng để Debug chương trình như
Softice ( hoặc Olly )

8.Nếu bạn là thành viên của một tổ chức hay một nhóm nào đó, hoặc thậm chí có
thể bạn chỉ là một thành viên thử thì bạn cũng nên gặp mọi người ,họ sẽ sẵn sàng
giúp bạn. Và bạn cũng có thể giúp họ nữa là đằng khác , Bạn sẽ được biết về các
kiểu bảo vệ của những soft khác nhau để từ đó bạn có thể tiếp tục làm việc ngày
càng tốt hơn

9.Bản thân bạn cũng phải thường xuyên được updated, điều này là rất quan trọng .
Bạn nên sử dụng các công cụ mới nhất , học những kiểu bảo vệ mới nhất

10.Tự bản thân bạn phải khám phá mọi thứ, hãy tự thực hành với tất cả các thủ
thuật mà bạn đã tìm được kể cả những thủ thuật mà bạn chưa từng đọc. Và cũng
đừng quên đem tất cả những thủ thuật mà bạn biết được truyền lại cho những
người khác , tự nghiên cứu là phương pháp tốt nhất

11.Đừng có phá hoại hay can thiệp vào công việc của người khác ( hãy tôn trọng
lẫn nhau), họ đã phải làm việc rất vất vả . Cũng đừng có phá hoại các file cracks ,
keygen hay creat serials của những người khác dù là nó chưa được hay lắm.


12.Cuối cùng là các bạn hãy code thật nhiều, đọc thật nhiều , crack thật nhiều và
viết thật nhiều các bạn sẽ trở thành một cracker.

HẾT : )
Cảm ơn các bạn đã đọc bài viết này. Thanx
Hãy góp tất cả những gì các bạn có để làm cho diễn đàn này ngày càng hay và
phong phú hơn. :laugh:

Kienmanowar(REAonline.net)
Cracking Dictionary beta 1

(By hoadongnoi+Merc+hacnho+trickyboy+haule_nth+lena+Mrangelx+Why
not bar)

1. Breakpoint : hay còn được gọi là “điểm ngắt” - tức là ngắt (hay dừng) 1 tiến
trình đang hoạt động tại 1 vị trí nào đó, từ đó có thể kết xuất giá trị của 1 vài hoặc
tất cả các biến của chương trình. Điểm ngắt còn có thể được thiết lập bởi các lập
trình viên như là một sự tương tác với công cụ gỡ rối. Nói chung điểm

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×