banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: ngoalong  XML
Profile for ngoalong Messages posted by ngoalong [ number of posts not being displayed on this page: 12 ]
 
Bạn viết các function và dịch thành dạng BIN(DLL) ra 1 file, trong file đó chứa bảng các địa chỉ gọi hàm, danh sách các biến vào ra vvv. Sau đó dùng chương trình chính đọc file và nạp vào bộ nhớ (Load DLL) rồi dùng con trỏ hàm trong C để thi hành hàm tại địa chỉ cụ thể.

VD ta có hàm trong file DLL định dịch như sau:

void Func_A(){
// do something
}

=> phải tìm hiểu xem sau khi dịch xong cái địa chỉ của function đó nằm ở đâu trong file: dùng trình Debug là biết đc ==> ghi địa chỉ đó lại.

ở chương trình sử dụng DLL ta sẽ tạo 1 hàm có tên là LoadDLL() làm các nhiệm vụ sau:

- Đọc file DLL
- Xác định địa chỉ hàm cần gọi
- Nạp DLL lên không gian bộ nhớ của chương trình tại địa chỉ VD : DLL_base
- khai báo biết con trỏ hàm fp = DLL_base + (địa chỉ hàm trong DLL);
- dùng lệnh gọi hàm thông qua con trỏ hàm VD: fp(); <---> tương đương gọi Func_A();
trang portal "cho 4rum" HVA thế là quá ổn rồi đấy chứ. Sắp xếp rất quy củ và chuyên nghiệp. Nhiều thông tin quá cũng rối mắt. Mà ít quá e rằng không ai ghé qua portal smilie
ký tự trong máy tính được biểu diễn dưới dạng mã ASCII nên khi lập trình ta viết ký tự 'A' thì trong máy sẽ lưu mã ASCII của ký tự 'A' là 0x41 vậy chuyển là chuyển cái gì?

Câu hỏi đúng sẽ là:
- Có 1 chuỗi ký tự biểu diễn dưới dạng mã ASCII (VD: 0x41 0x42 0x43)
- Cần hiển thị chuỗi mã ASCII đó dưới dạng ký tự lên màn hình (VD: 'ABC')

gợi í : sử dụng hàm printf và sscanf
WDASM description

W32DASM - The Ideal Tool To Learn How Windows Programs Operate
W32DASM is the perfect utility to learn how Windows programs operate.

Here are some key features of "WDASM":

· Disassembles Both 16 and 32 Bit Windows Programs
· Displays for Exports, Imports, Menu, Dialog, and Text References
· Integrated Debugger for 32 Bit Programs (16 Bit Debug Not Available)
· Includes Text Search and Navigation Functions

http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/WDASM.shtml

XxsosxX wrote:

trừ lần đầu tiên bị thằng BKAV thịt còn lại những lần sau mình vẫn chạy tốt, với cách thay đổi ICON của nó khi compie...
và sau đó là tới lược mình thịt thằng BKAV......hè hè để tránh nó hiểu nhầm là virus.... 

đi ăn chộm thì khi thoát ra phải giữ nguyên hiện trường lúc vào chứ smilie trước khi ra lại giết vài mạng thì....

Z0rr0 wrote:
Có 1 cách để 1 interactive service tương tác với các desktop khác session là thông qua 1 application hoạt động trong desktop đó. Service sẽ gửi tín hiệu đến application này, và app này sẽ thể hiện GUI. 

em tò mò là cái app này. Nó ở đâu? kiểu gì và làm sao để nó start trước khi login smilie
còn cái bác Zorro demo em thử chạy tốt. Lấy được GDI và vẽ vời dc đủ thứ trên màn hình logon.
đoạn code trên chỉ chạy được trong chế độ kernel mode driver nên rất khó để sử dụng.
có thể dùng cách sau để kill các process thông thường /hvaonline/posts/list/83.html

Z0rr0 wrote:

LeVuHoang wrote:

@Z0rr0: INTERACTIVE service hình như cũng không display được luôn thì phải.
...
Chỉ có cách service và app tương tác với nhau như bác Z0rr0 nói thôi, nhưng e là... không chạy trước logon được smilie 


Chắc chắn được, vì tui đã từng làm được rùi, service vẽ vời đủ kiểu trước khi any user logon hay ở màn hình locked desktop.
Mọi người code thử xem smilie)  

nếu ở màn hình locked desktop thì em không í kiến í cò gì nhưng nếu trước khi logon thì em cũng có tí í kiến smilie
- Nếu làm được cái app chạy trước logon thì không cần làm cái service kia vì cái service mục đích chỉ để chạy trước khi logon
- Nếu làm được cái app trước logon thì app này làm kiểu gì? chắc chắn không thể là app bình thường được. Em nhớ k nhầm khi trước làm cái Gina Hook nó cũng có các hàm như CreateDialog nhưng nó có thêm cái Prefix đằng trước để phân biệt với các hàm thông thường.
Cuối cùng vì cũng chưa thử nên những lời nhận xét trên chỉ mang tính chất bàn luận smilie em cũng muốn bác Zorro cho xem một cái demo smilie

LeVuHoang wrote:
@ngoalong: GINA đã được MS bỏ rơi khi lên Windows Vista roài bác smilie
@Z0rr0: INTERACTIVE service hình như cũng không display được luôn thì phải.
Trong Windows Vista, vì lý do bảo mật, nếu service của bạn display 1 GUI, thì bạn sẽ phải vào 1 session khác để xem rồi trở lại session hiện tại.
Chỉ có cách service và app tương tác với nhau như bác Z0rr0 nói thôi, nhưng e là... không chạy trước logon được smilie 

ờ máy ở nhà còi nên ko xài đồ xịn vista smilie hehehe
chắc ứng dụng của bạn kia là cái ứng dụng bảo vệ truy cập vào PC "theo... cách riêng của bạn" smilie đã có lần bị đụng vào một cái tương tự sử dụng smart card để bảo vệ nhưng lại phải "say it your way" nên cuối cùng cũng thất bại smilie

secmask wrote:
O_o , tui nói là service thì bị disable về UI , nhưng bạn có chắc logonui.exe (cái chương trình có giao diện login)chạy như là 1 service ko ? . 

Trong Window có 2 loại desktop là application desktop và WinLogon desktop. Những thằng nào mà hiện ra giao diện trước khi login thì nó chạy trên nền WinLogon desktop. Logonui.exe là WinLogon desktop.
Chắc ứng dụng của bạn chỉ cần hooking GINA DLL là đủ rồi.
Về vấn đề service thì thông tin theo tôi đã quá đủ. Tôi biết còn 1 cách nữa để start 1 cái form GUI trước khi user login đó là dùng phương pháp DLL hook vào WinGina.dll. Tham khảo http://www.codeproject.com/useritems/GINA_SPY.asp
ThangCuEm kiến thức về LT rất sâu :wink: tôi lập trình VC++ cũng khá lâu mà không để ý sâu xa đến những điều trên smilie

sratch wrote:
.
VC++ ko sử dụng framework, nó có một số bộ thư viện như MFC .. trợ giúp cho việc lập trình nhanh chóng và dễ dàng hơn, trực tiếp hoặc gián tiếp sử dụng api của windows. 


Bổ sung thêm chút ý này:

VC++ 6.0 thì sử dụng API hoặc MFC(các lớp bọc API) là chuẩn xác nhưng trên các bộ VS2005 thì VC++ 8.0 lại bao gồm cả cái CLR hay CLI cú pháp và ngôn ngữ là C++ nhưng lại lập trình trên .NET Framework. Một ứng dụng MFC có thể chứa 1 Form được viết bởi CLI vậy thì nói cho cùng VC++ sử dụng được cả .NET Framework. smilie Vì vậy ta cần phân biệt ứng dụng đó được phát triển trên MFC hay trên .NET.

Tôi thấy .NET cũng có các cơ chế mở để can thiệp sâu vào hệ thống nhưng chắc chắn sẽ không sâu và mạnh bằng sự dụng các hàm API hệ thống <-- cái này thì dùng C/C++ là mạnh nhất. MFC cũng không dựng sẵn các lớp cho phép người dùng can thiệp sâu vào hệ thống nhưng khi lập trình VC++ dùng MFC thì việc gọi các hàm API hay các lớp MFC là dễ như nhau nên sức mạnh thật sự của nó là các hàm API sử dụng các thư viện CRT trong windows. Thư mục các DLL này trong VC8 nằm ở //Windows/WinSxS/

osamabinladel wrote:

ThangCuEm wrote:
C++, trên Windows thì dùng VC++, trên nix thì dùng GCC. 

vầy xin hỏi ThangCuEm , C# mạnh về ji`
thank pác 


Tôi cũng đang nghiên cứu C# và được biết rằng C# có những điểm mạnh nổi bật sau:

1. C# (C ++++ smilie) ) là ngôn ngữ phát triển trên nền ngôn ngữ C++ nhưng không như C++ là ngôn ngữ lai giữa hướng đối tượng và hướng cấu trúc. C# hướng đối tượng hoàn toàn và giống Java nhiều hơn về cái OPP.
2. C# có được sức mạnh trong các bài toán kết nối CSDL,Report,Web như VB <== mình yêu cái này của C#
3. C# lập trình trên .NET framework nên có tất cả những sức mạnh của .NET (VC6 lập trình trên nền API hoặc MFC. VC7,VC8 thì có thể lập trình cả API,MFC và .NET framework <== mình yêu cái này của VC++).

Theo lời chuyên gia spinx thì C#,VB.NET,VJ#.NET được microsoft xây dựng theo tư tưởng hướng chúng lại với nhau liên kết bởi .NET framework nên các ngôn ngữ đều có một sự chung nhất và khả chuyển lẫn nhau. Chính điều này tạo nên sức mạnh cho các nhóm làm việc trên môi trường đa ngôn ngữ.

osamabinladel wrote:
không biết em có nôn nóng không , vì đọc rất nhiều sách C,C++ chưa thấy nói ji` đến lập trinh ra cách chương trình nghe nhạc nên thấy băng khoăn,
C,C++ thì em vẫn đang học , mới làm xong cái đồ án lập trình hệ thống( mô phỏng lệnh MOVE của DOS , dùng ngắt của hệ thống hi` hi` 9point đấy he`)
em rất muốn có một tài liệu nói về việc lập trình multimedia tư ngôn ngữ này
Xkin các pa'c giúp đỡ
 


multimedia chuyên nghiệp thì dùng các thư viện DirectX, DirectShow và mạnh nhất là ngôn ngữ C/C++ trên nền Win32: tài liệu phần DirectShow trong tập MSDN library.

còn mấy chương trình nghe nhạc còi còi thì dùng cái activex mplayer có sẵn của Windows trên nền ngôn ngữ gì cũng được.
Bạn giao tiếp với điện thoại để bàn sử dụng máy tính? Vậy bạn phải có 1 cái card giao tiếp đường line ( hay gọi là card dialogic). Nếu dùng modem V90, 92 thì cái modem đó đóng vai trò là điện thoại rồi. Cái thư viện TAPI đấy nó phải kết nối đến 1 thiết bị nào đó bạn chưa chỉ rõ. Nếu kết nối với điện thoại để bàn là phi lý (trừ cái ĐT để bàn không dây smilie của bọn viettel bây giờ có support chức năng này). Khi kết nối với mobile thì lúc đó mobile của bạn đóng vai trò là một thiết bị Telephone Device giao tiếp qua COM,IrDA hay USB rồi.
http://www.codeproject.com/internet/FwHookDrv.asp

tham khảo mã này nhé. Đây là pp làm firewall bằng Filter Hook Driver trong tài liệu lập trình DDK Win2K/XP. Có nhìu cách khác tùy theo lớp ứng dụng mà bạn cần firewall để giải quyết vấn đề.
Frame là khung ứng dụng còn Dialog là hộp thoại hay ứng dụng kiểu hộp thoại. Dialog thường trả về cho chương trình các ứng xử như OK hay Cancel kể cả ứng dụng kiểu Dialog. Hộp thoại có 2 kiểu là Modal và Modaless. Frame là các ứng dụng khung, có thể có các View trên nó hoặc có thể không. Khác nhau cũng nhìu và giống nhau cũng nhìu vì gốc của nó vẫn là thừa kế từ CWnd smilie
 
Go to Page:  First Page Page 1 Page 3 Last Page

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|