|
|
Instance là phiên bản của đối tượng tồn tại trong hệ thống
|
|
|
Thông tin và Quy định cho chuyên mục Reverse Engineering
1. Thông tin
Reverse Engineering là thao tác phân tích ở mức thấp một hệ thống hoặc phần mềm từ đó hiểu được kiến trúc, dữ liệu, các chức năng và cách thức thực hiện các chức năng đó. Các thao tác cụ thể như sau:
- Phân tích mã nhị phân của phần mềm
- Theo dõi các thông tin tương tác (vào/ra) của phần mềm so với thế giới bên ngoài
Chuyên mục Reverse Engineering sẽ là nơi trao đổi kinh nghiệm, các kĩ thuật, công cụ hỗ trợ trong quá trình phân tích.
2. Quy định
- Không được đăng các bài tìm/xin/cho crack/serial/key
|
|
|
Mấy thuật ngữ này không nên dịch ra tiếng Việt, bạn làm dần sẽ hiểu thôi
Tuy nhiên, bạn có thể hiểu như sau:
- Interface: Giao diện lập trình, là phương tiện về mặt giao tiếp giữa framework và lập trình viên. Giống như bạn bước vào một công ty cần phải gặp tiếp tân (như interface) trước vậy.
- Collection: Tập hợp các thư viện mà framework cung cấp dành cho lập trình viên sử dụng.
- Enumeration: Liệt kê, duyệt qua từng phần tử của collection.
Bạn nên tìm hiểu các thuật ngữ chuyên ngành bằng từ điển.
|
|
|
Nguyên tắc cơ bản của việc tìm tên trong cơ sở dữ liệu là so sánh các data trùng nhau, tên ở đây là chuỗi các kí tự. Nếu bạn sử dụng tên có dấu (Multibyte hoặc Unicode) thì bạn cần đồng nhất việc lưu trữ ở database, đọc từ database và so sánh. Ví dụ bạn lưu trữ các tên (chuỗi) Unicode ở db thì phải đọc lên dạng Unicode, nếu không đúng phải tìm cách chuyển đổi về Unicode charset. Sau đó dùng các hàm tương thích bảng mã này để so sánh và thiết lập giao diện hiển thị được Unicode.
Nếu một trong các bước này không đúng thì đương nhiên việc so sánh giữa các chuỗi không chính xác nữa, dẫn đến kết quả sai lệch. Với ASP bạn có thể tìm hiểu cách lưu trữ và đọc thông tin bằng UTF-8 để hiển thị kí tự có dấu. Hầu hết các forum phổ biến hiện nay thực hiện theo cách này.
|
|
|
com_hacker wrote:
không anh à
Ý em hỏi là giữa server và client nó gửi những thông tin gì
các lệnh và tham số điều khiển, trao đổi thời gian.....
Em hỏi cứ như ở đây có tác giả của trình netcafe mà em đang tìm hiểu vậy.
Mỗi ứng dụng có cơ chế hoạt động và trao đổi thông tin riêng tuỳ thuộc vào mục đích và chủ ý của tác giả, netcafe gì đó cũng vậy. Không ai nói trắng ra họ là gì đâu vì đó thuộc về quyền sở hữa trí tuệ của tác giả.
Em nên tìm hiểu các kiến thức về lập trình mạng client-server, database, hệ điều hành... rồi sẽ hiểu netcafe hoạt động thế nào.
|
|
|
Mr An Luong wrote:
Em thấy diễn đàn cung cấp nhiều kiến thức để khai thác, tấn công quá nhưng mà không biết phải ứng dụng thực tế như thế nào. Nên em đề nghị mở thêm một BOX chuyên thảo luận việc phát triển các Tool để khai thác, như vậy thì lý thuyết mới đi đôi với thực hành. Chớ xài Tool nước ngoài riết thì cũng chả hiểu mô tê gì ráo, không biết mã nguồn nó ra làm sao, nó hoạt động như thế nào, có hạn chế gì v.v...
Chào bạn,
HVA là diễn đàn về bảo mật nên tất cả những gì thảo luận trên diễn đàn đều liên quan. Hiện tại HVA có 2 sub-forum là Thảo luận Lập trình Hệ thống và Lập trình Web không chỉ dành cho các bài viết cơ bản, mà mục tiêu là dành cho các bài liên quan đến bảo mật.
|
|
|
hotlovebabyqn83 wrote:
tôi đang tìm phần mềm có chức năng đổi các kí tự dạng ****hiển thị <phần sau được hiển thị> ra nội dung thật của nó , lúc trước vô tình tui đã thấy nó ở đâu rồi nhưng tìm hoài ko có . Ai có hoặc biết dến cái này xin hãy poss link lên , tôi xin chân thành cảm ơn[b]
Edited Subject by GA
Dùng thử Windows Password Spy tại đây http://www.whatvn.com/tools.html
|
|
|
Tại sao bạn không dạo 1 vòng Group Policy Editor nhỉ
Cách thức enable/disable các tab trong Internet Options cũng có thể thực hiện bằng công cụ này.
- Duyệt "Administrative Templates"->"Windows Components"->"Internet Explorer"->"Internet Control panel", thuộc tính "Disable the Connections page" bạn chọn Enable, sau đó đóng GP Editor và restart IE.
|
|
|
Thông thường khi install Visual Studio nó sẽ hỏi install kèm MSDN. Tuy nhiên nếu bạn install ko đúng thứ tự thì VS ko tích hợp được.
Bạn thử cách sau xem có hiệu quả không:
http://www.codeproject.com/winhelp/msdnintegrator.asp
|
|
|
Trong XP, IE7 beta3:
Chạy Group Policy Editor (gpedit.msc):
- Duyệt "Local Computer Policy": Có 2 nhánh là "Computer Configuration" (áp dụng cho toàn bộ user của hệ thống) và "User Configuration" (cho user đang login). Tuỳ mục đích mà thiết lập setting cho một trong 2 nhánh này.
- Duyệt "Administrative Templates"->"Windows Components"->"Internet Explorer", setting là "Turn off tabbed browsing": giá trị enabled sẽ tắt tabbed browsing, disable sẽ bật lại. Sau khi thiết lập xong thì tắt trình GPEdit và restart IE.
Ngoài ra, vào Internet Settings của IE, tab General, phần Tabs chọn button Settings và chọn Enable Tabbed Browsing.
Lưu ý nếu trong Group Policy Editor chọn giá trị Not Configured thì thiết lập giá trị trong IE Settings mới hiệu nghiệm.
|
|
|
Em có thể tham khảo các bài học Tiếng Việt về SQL Server ở đây: http://www.vovisoft.com/SQLServer2000/default.asp
Đây là những khái niệm cơ bản có thể áp dụng cho mọi phiên bản SQL Server, đối với version 2005 có một số đặc tính mới, em có thể tham khảo thêm các tài liệu English tại http://msdn.microsoft.com
|
|
|
Windows API hay API viết tắt của Application Programming Interface: là các hàm/thủ tục giúp các ứng dụng tương tác với các tính năng của hệ thống, để điều khiển hệ thống (hệ thống ở đây là Windows).
Các ngôn ngữ cho phép sử dụng Windows API đều có thể thực hiện việc hook API
Hook một API là thao tác chuyển (lái) lời gọi từ các ứng dụng đến API này sang một hướng khác với mục đích xử lý riêng. Như vậy, để thực hiện việc hook API em phải có 1 đoạn mã hoặc 1 API khác để xử lý khi nhận lời gọi. Nếu em hiểu khái niệm chặn ngắt (interupt) thì về cơ bản hook API cũng gần tương tự.
Nguyên tắc của việc đặt hook là sau khi thực hiện xong các chỉ thị của mình thì phải chuyển lời gọi về cho API nguyên bản. Chu trình này gọi là hook chain.
Trong C# hoặc các ngôn ngữ .NET khác, em có thể sử dụng directive Import để import các dll và gọi các hàm hook cần thiết.
Em nên tham khảo các bài viết trong box Lập trình để tìm hiểu thêm.
|
|
|
p405 wrote:
Uhm anh có thẻ nói quá k ạ,e cũng đã thử hack vài site bị dính sql rồi ,tuy thế tới cái này thì khó vì nó là dạng file CGI ,rất hiếm gặp
Em có thể tìm tại đây http://www.google.com.vn/search?hl=vi&q=sql+injection+filetype%3Apdf&btnG=T%C3%ACm+v%E1%BB%9Bi+Google&meta= để tìm hiểu cặn kẽ hơn về SQL Injection.
Ngoài ra, về CRLF Injection em có thể tìm hiểu thêm:
http://www.acunetix.com/websitesecurity/crlf-injection.htm
http://www.securiteam.com/securityreviews/5WP022K75O.html
|
|
|
Bài này sẽ được move vào box Thảo Luận Bảo Mật vì ko phù hợp với box Lập trình web.
Bạn đang dùng Windows server 2k3 mà lại sử dụng web server Apache thì không tận dụng được tính năng của Windows server 2k3 (có sẵn IIS6). Tuy nhiên tất cả tuỳ thuộc yêu cầu của web application bạn đang dùng.
Các câu hỏi của bạn có thể tìm giải đáp tại các box:
- Thảo luận bảo mật/thâm nhập và các bài viết giá trị
- Ứng dụng Windows/Unix
|
|
|
pntminh wrote:
Vậy tiện thể, xin các huynh đệ chỉ dùm cách liệt kê handle của các process đang chạy trong bộ nhớ
Bạn có thể dùm API EnumProcess để lấy danh sách các Process ID (PID) đang chạy. Xem code ví dụ sau trong MSDN:
Code:
// Get the list of process identifiers.
DWORD aProcesses[1024], cbNeeded, cProcesses;
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return;
Mảng các giá trị PID 1024 trên là hard-coded. Bạn có thể thay bằng một danh sách động. Lưu ý rằng danh sách PID trên bao gồm cả 16-bit process, 32 và 64 bit.
Các API khác bạn cần tham khảo để lấy thông tin về process: EnumProcessModules, GetModuleBaseName, GetModuleFileName, CreateToolhelp32Snapshot...
|
|
|
topvn.info wrote:
Tui cần tên của nó kìa
Cái tội không đọc kĩ bài reply!!!
|
|
|
Trong database master có các bảng sysobjects, syscolumns, systypes chứa thông tin của tất cả các table. Bạn có thể dùng 1 sql statement kết hợp các giá trị trong sysobjects và syscolumns để xem cấu trúc 1 table. Xem ví dụ sau:
Code:
S*lect syscolumns.name,systypes.name,syscolumns.length from sysobjects
Inner join syscolumns on syscolumns.id = sysobjects.id
Inner join systypes on systypes.type = syscolumns.type
Where sysobjects.type = 'U' and sysobjects.name ='YOUR_TABLE_NAME'
Kiến thức và các system table này rất có lợi trong việc kiểm tra SQL Injection
|
|
|
pntminh wrote:
Xin hỏi có cái chương trình nào can thiệp vào process của Windows có thể gởi một sự kiện như Mouse_move, mouse_up, key_up... vào cái process nào đó đang runtime không? hay mã lệnh VC, VB, delphi gì gì cũng được
Cảm ơn trước nhe! :lol: :lol: :lol:
Mỗi ứng dụng trong Windows đều có 1 hàng đợi thông điệp (message queue) để nhận các Windows message do Windows tiếp nhận từ người dùng gửi đến và chuyển và queue này. Trên lý thuyết, bạn hoàn toàn có thể gửi các message mong muốn vào hàng đợi của 1 ứng dụng bất kì. Tuy nhiên lưu ý rắng các message đều có mục đích cụ thể và những thông tin kèm theo thích hợp tuỳ thuộc vào mỗi loại window/control. Do đó, để message của bạn đến đúng địa chỉ (1 control/window nào đó trong 1 process) thì bạn cần biết window handle của control đó trước.
|
|
|
Chào bạn kidrock,
Đoạn mã của bạn có vấn đề:
Code:
strContent = (char *) (_bstr_t) pRecordset->Fields->GetItem ("Name")->Value;
Như vấn đề bạn nêu, database bạn chứa dữ liệu Unicode. Property Value lấy từ RecordSet trả về giá trị BSTR, nếu bạn biên dịch ứng dụng với option Unicode thì BSTR đó cũng là Unicode, do đó bạn convert bằng type cast về char* ((char *) (_bstr_t) ) sẽ làm mất dữ liệu. Do đó, sau đó cho dù bạn convert ngược lại Unicode cũng ko còn đúng nữa.
Bạn nên áp dụng như tôi đã đề cập ở bài post đầu:
- Biên dịch với tuỳ chọn Unicode cho ứng dụng.
- Khi cần ép kiểu, thì ép về kiểu generic LPCTSTR, thay vì là char* (các kiểu generic sẽ chuyển về Unicode khi biên dịch dạng Unicode). VD:
Code:
strContent = (LPCTSTR) (_bstr_t) pRecordset->Fields->GetItem ("Name")->Value;
- Các thư viện SDK, MFC đều có sẵn các hàm convert từ MBCS sang Unicode và ngược lại, bạn không cần viết lại hàm convert chi cho nhọc sức và có thể không chính xác.
Hãy xem các macro USE_CONVERSION tôi đã đề cập, ngoài ra có các API như MultiByteToWideChar, ... Đề nghị xem MSDN.
MFC (Microsoft Foundation Classes) được build cho cả dạng Multibyte (MBCS) và Unicode, ví dụ như CString. Chỉ một số ít bắt buộc phải dùng Unicode. Khi biên dịch tuỳ thuộc vào setting project của bạn mà compiler sẽ sử dụng MB hay Unicode.
Mở một project bằng VC++ 6. Vào menu Projects/Settings, tab C/C++ ở phần Preprocessor definitions bạn sẽ thấy default là có _WINDOWS, _MBCS. Khi này CString sẽ là chuỗi Multibyte (các kí tự 1 byte). Để biên dịch Unicode bạn thay _MBCS thành _UNICODE. Khi đó CString sẽ là chuỗi Unicode.
|
|