-
09-06-2012, 09:01 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Khi bạn loadlibrary dll lên bộ nhớ thì nó cũng load các hàm trong dll tại các địa chỉ nhất định trong bộ nhớ.Dù dll có sẵn hay bạn tự build ra thì cách gọi hàm cũng thế thôi.Bạn truyền sai đối số,gọi sai tên hàm ... thì nó mới không thực thi theo ý bạn.
Tham khảo cách sử dụng các hàm trong dll ở đây :
http://diendan.congdongcviet.com/showthread.php?t=47180
http://diendan.congdongcviet.com/showthread.php?t=118600View more random threads:
- Làm thế nào để phát hiện ra là Người dùng đang nhấn phím hay Unikey?
- Source inject DLL gồm cả DLL và exe. Lỗi làm sao sửa?
- Làm sao để tích hợp DLL file vào executable file
- Cryptography Next Generation Cách nào chạy trên windows XP ?
- lổi khi làm việc với directX ?
- Hook NtSetContextThread
- Làm sao để hook khi đã có hWnd?
- Hỏi hàm FindAtom để làm gì ?
- Gọi hàm trong process và tìm địa chỉ của hàm đó từ 1 process khác như thế nào ?
- Bắt HWND của cửa sổ vừa tạo ra không dùng FindWindow
-
09-06-2012, 05:26 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Làm thế nào để liên kết các hàm đã export trong 1 dll. (proxy function )
Trong 1 game âm nhạc, fmod.dll làm nhiệm vụ chơi các âm thanh, nhạc .v.v., bản thân fmod.dll này export tổng cộng 230 function để quản lí nhạc, âm thanh này.
Tớ thay tên fmod.dll thành _fmod.dll rồi sau đó viết code vào source fmod mới, fmod mới này cũng export đầy đủ 230 function ( gọi tắt là fake cái fmod gốc ).
Nhưng khi build xong, để vào game ( bỏ luôn cái _fmod.dll, vì tớ loadlibrary cái fmod này để GetProcAddress tất cả 230 hàm trong đó ) thì Game không có bất cứ nhạc, âm thanh gì cả.
Vậy các anh chị em giúp dùm tớ, hiện tại tớ GetProcAddress tất cả 230 hàm rồi còn phải làm gì nữa để có thể fake fmod kia hoàn hảo. Có 1 người gợi ý cho tớ là sử dụng proxy để liên kết hàm đã get ở _fmod.dll. Vậy làm thế nào các anh chị em giúp tớ với.
Tớ xem 1 cái fmod cũng làm như tớ nhưng đến đoạn này tớ không hiểu nó làm gì, các anh chị giải thích dùm em. ( đây cũng là công việc sẽ làm sau khi GetProc cái hàm, mà vẫn k hiểu nó làm gì )
-
09-06-2012, 06:38 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Giải thích rõ hơn được không bạn ?
Mình đọc đi đọc lại mà vẫn chưa hiểu mục đích và cách làm của bạn.
-
09-06-2012, 06:46 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cái tên file dll không ảnh hưởng gì khi bạn load lên bộ nhớ cả.Vấn đề ở đây tôi nghĩ là do namemanling khi biên dịch làm các hàm export ra khác với tên hàm khi code khiến gọi hàm trong chương trình bạn không được.Bạn thử check lại tên các hàm được export trong đó xem.
-
09-06-2012, 07:52 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hoàn toàn đúng, vì tớ đã thử viết sai hàm 1 lần, và game nó báo thiếu hàm đấy, tớ export đúng hoàn toàn không sai gì cả, cũng không thiếu 1 hàm nào, nhưng có 1 người nói " export rồi mà để đó thì chẳng khác nào gọi hàm MessageBox của use32 rồi để đó ", tuy nhiên công việc tiếp theo khi đã export là phải làm thế nào ? để khi game load dll của tớ nó sẽ có đầy đủ nội dung hàm và hoạt động bình thường.
Porxy function là gì ?
-
16-06-2012, 11:27 AM #6Silver member
- Ngày tham gia
- Sep 2015
- Đang ở
- Hà Nội
- Bài viết
- 0
Gửi bởi hsagduag
Proxy funtion trong bài toán của bạn là 1 cái cầu nối từ 1 function trong dll fake này tới 1 function trong dll ( xịn ) ko fake.
Ví dụ: _fmod.dll( original function ) có function A # fmod.dll có function A
Bởi vì function A trong _fmod bạn ko thể biết được thân hàm nó làm gì .
Và cái function A trong fmod bạn mới tạo.
Khi bạn dùng cách fake dll thì app gọi fmod -> call cái funtion A bạn tạo ra .
Và nếu bạn muốn có tí thực thi giống ban đầu thì
Từ cái function A này bạn gọi tiếp function A của _fmod.
Còn về vấn đề vụ fake dll của bạn .
- Bạn phải biết chắc là cái app gameamnhac.exe của bạn nó dùng kiểu nạp dll tĩnh hay động
- Nắm rõ tham số ( input ) truyền vào hàm cũng như return value ( output )
Nếu nạp dll động thì còn đơn giản .
Nếu nạp dll tĩnh thì bạn phải sửa lại import address table. Cái này thì bạn cố đọc chút tài liệu để làm nhé [IMG]images/smilies/biggrin.png[/IMG]
Vừa qua, Chính phủ đã ban hành Quyết định số 2383/QĐ-TTg ngày 09/12/2013 về việc xếp hạng di tích quốc gia đặc biệt. Theo đó, khu di tích Đường Trường Sơn - Đường Hồ Chí Minh là 1 trong 14 kỷ vật...
Các relic, danh thắng được xếp...