[Thảo luận kỹ thuật] Có thể gọi hàm DLL 64-bit trực tiếp từ VBA/VB6 32-bit qua WOW64 không? (3 người xem)

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

phuongnam366377

Thành viên thường trực
Tham gia
25/10/19
Bài viết
270
Được thích
241
Rảnh mở chủ đề này xem có ai ý kiến gì không và cũng thử xem trên này có nhiều thành viên lý thuyết kinh điển lắm tham gia bà tám chơi thôi

Keo ChatGPT viết bài sau ... Copy nội dung y trang ChatGPT viết dưới

[Thảo luận kỹ thuật] Có thể gọi hàm DLL 64-bit trực tiếp từ VBA/VB6 32-bit qua WOW64 không?​

Chào các anh/chị,

Mình đang tìm hiểu về WOW64 và khả năng tương tác giữa tiến trình 32-bit với môi trường 64-bit trên Windows.

Khi tìm kiếm thì đa số tài liệu đều nói:

  • process 32-bit không thể load trực tiếp DLL 64-bit
  • VBA/VB6 32-bit không thể gọi native x64 DLL theo cách thông thường
  • giải pháp thường là:
    • COM out-of-process
    • EXE trung gian
    • .NET bridge
    • IPC / Named Pipe / RPC
Tuy nhiên mình thấy có một ví dụ khá thú vị:

https://github.com/thetrik/Vb64BitDllUsage

Ví dụ này có vẻ sử dụng kỹ thuật WOW64 transition / thunking để gọi một số hàm 64-bit từ VB6/VBA 32-bit.

Mình muốn hỏi thêm về hướng kỹ thuật này:

  1. Bản chất kỹ thuật ở đây thực sự là gì?
    • thunk?
    • heaven gate?
    • WOW64 transition?
    • shellcode bridge?
    • hay một dạng trampoline đặc biệt?
  2. Về lý thuyết có thể mở rộng thành:
    • gọi dynamic nhiều hàm x64 khác nhau
    • marshal tham số Unicode/structure
    • đọc PEB64
    • resolve export table
    • generic invoke engine
      được không?
  3. Những giới hạn lớn nhất của hướng này là gì?
    • stack alignment?
    • x64 calling convention?
    • SEH?
    • crash IDE VBA/VB6?
    • DEP/CFG?
    • antivirus/EDR?
  4. Có ai từng thấy project nào public theo hướng này chưa?
    Ngoài ví dụ của thetrik thì mình tìm Google hầu như chỉ thấy:
    • câu hỏi lý thuyết
    • trả lời “không thể”
    • hoặc giải pháp dùng process trung gian.
  5. Theo các anh/chị, nếu triển khai thật thì:
    • hiệu năng có quá tệ không?
    • có ổn định không?
    • có phù hợp production không?
    • hay chỉ nên xem như proof-of-concept nghiên cứu?
Mình chủ yếu muốn tìm hiểu thêm về:

  • WOW64 internals
  • Windows loader
  • thunking giữa 32-bit ↔ 64-bit
  • khả năng mở rộng của VBA/VB6
Rất mong được nghe thêm các góc nhìn kỹ thuật và phản biện từ mọi người.

Tham khảo bài viết của Raymond Chen


Các Link tham khảo




Keo ChatGPT phân tích thấy dòng hay

1778820907803.png
ChatGPT kết luận

1778821227745.png
 
Lần chỉnh sửa cuối:

Bài viết mới nhất

Back
Top Bottom