Files
RMHook-Win/paho-mqtt3as-proxy/paho-mqtt3as.asm
√(noham)² b9c992e3d7 Implement export forwarders and refactor hooks
Introduce a PAHO_FORWARDER_EXPORTS macro and generate Original_* FARPROC forwarder targets, replace the many hand-written fake exports with assembly forwarding stubs, and simplify exports.cpp to declare and initialize those forwarder pointers. Refactor paho-mqtt3as-proxy hook logic: improve logging, robustly load/save JSON config using std::filesystem and safe parsing, consolidate URL/host patching logic for HTTP/WS/MQTT, and add safer MQTT URI patching and resolution helpers. Update main to populate forwarder addresses at startup and make hook installation more defensive when symbols aren't found. Add docs images, update README (bump tested version and enable images), remove STATE.md, and adjust .gitignore to keep docs included.
2026-05-09 23:14:02 +02:00

62 lines
3.8 KiB
NASM

.code
FORWARD_EXPORT MACRO fakeName, targetName
EXTERN targetName:QWORD
PUBLIC fakeName
fakeName PROC
jmp QWORD PTR [targetName]
fakeName ENDP
ENDM
FORWARD_EXPORT FakeMQTTAsync_connect, Original_MQTTAsync_connect
FORWARD_EXPORT FakeMQTTAsync_create, Original_MQTTAsync_create
FORWARD_EXPORT FakeMQTTAsync_destroy, Original_MQTTAsync_destroy
FORWARD_EXPORT FakeMQTTAsync_disconnect, Original_MQTTAsync_disconnect
FORWARD_EXPORT FakeMQTTAsync_free, Original_MQTTAsync_free
FORWARD_EXPORT FakeMQTTAsync_freeMessage, Original_MQTTAsync_freeMessage
FORWARD_EXPORT FakeMQTTAsync_getPendingTokens, Original_MQTTAsync_getPendingTokens
FORWARD_EXPORT FakeMQTTAsync_getVersionInfo, Original_MQTTAsync_getVersionInfo
FORWARD_EXPORT FakeMQTTAsync_global_init, Original_MQTTAsync_global_init
FORWARD_EXPORT FakeMQTTAsync_isComplete, Original_MQTTAsync_isComplete
FORWARD_EXPORT FakeMQTTAsync_isConnected, Original_MQTTAsync_isConnected
FORWARD_EXPORT FakeMQTTAsync_malloc, Original_MQTTAsync_malloc
FORWARD_EXPORT FakeMQTTAsync_reconnect, Original_MQTTAsync_reconnect
FORWARD_EXPORT FakeMQTTAsync_send, Original_MQTTAsync_send
FORWARD_EXPORT FakeMQTTAsync_sendMessage, Original_MQTTAsync_sendMessage
FORWARD_EXPORT FakeMQTTAsync_setAfterPersistenceRead, Original_MQTTAsync_setAfterPersistenceRead
FORWARD_EXPORT FakeMQTTAsync_setBeforePersistenceWrite, Original_MQTTAsync_setBeforePersistenceWrite
FORWARD_EXPORT FakeMQTTAsync_setCallbacks, Original_MQTTAsync_setCallbacks
FORWARD_EXPORT FakeMQTTAsync_setConnected, Original_MQTTAsync_setConnected
FORWARD_EXPORT FakeMQTTAsync_setConnectionLostCallback, Original_MQTTAsync_setConnectionLostCallback
FORWARD_EXPORT FakeMQTTAsync_setDeliveryCompleteCallback, Original_MQTTAsync_setDeliveryCompleteCallback
FORWARD_EXPORT FakeMQTTAsync_setDisconnected, Original_MQTTAsync_setDisconnected
FORWARD_EXPORT FakeMQTTAsync_setMessageArrivedCallback, Original_MQTTAsync_setMessageArrivedCallback
FORWARD_EXPORT FakeMQTTAsync_setTraceCallback, Original_MQTTAsync_setTraceCallback
FORWARD_EXPORT FakeMQTTAsync_setTraceLevel, Original_MQTTAsync_setTraceLevel
FORWARD_EXPORT FakeMQTTAsync_setUpdateConnectOptions, Original_MQTTAsync_setUpdateConnectOptions
FORWARD_EXPORT FakeMQTTAsync_strerror, Original_MQTTAsync_strerror
FORWARD_EXPORT FakeMQTTAsync_subscribe, Original_MQTTAsync_subscribe
FORWARD_EXPORT FakeMQTTAsync_subscribeMany, Original_MQTTAsync_subscribeMany
FORWARD_EXPORT FakeMQTTAsync_unsubscribe, Original_MQTTAsync_unsubscribe
FORWARD_EXPORT FakeMQTTAsync_unsubscribeMany, Original_MQTTAsync_unsubscribeMany
FORWARD_EXPORT FakeMQTTAsync_waitForCompletion, Original_MQTTAsync_waitForCompletion
FORWARD_EXPORT FakeMQTTProperties_add, Original_MQTTProperties_add
FORWARD_EXPORT FakeMQTTProperties_copy, Original_MQTTProperties_copy
FORWARD_EXPORT FakeMQTTProperties_free, Original_MQTTProperties_free
FORWARD_EXPORT FakeMQTTProperties_getNumericValue, Original_MQTTProperties_getNumericValue
FORWARD_EXPORT FakeMQTTProperties_getNumericValueAt, Original_MQTTProperties_getNumericValueAt
FORWARD_EXPORT FakeMQTTProperties_getProperty, Original_MQTTProperties_getProperty
FORWARD_EXPORT FakeMQTTProperties_getPropertyAt, Original_MQTTProperties_getPropertyAt
FORWARD_EXPORT FakeMQTTProperties_hasProperty, Original_MQTTProperties_hasProperty
FORWARD_EXPORT FakeMQTTProperties_propertyCount, Original_MQTTProperties_propertyCount
FORWARD_EXPORT FakeMQTTPropertyName, Original_MQTTPropertyName
FORWARD_EXPORT FakeMQTTProperty_getType, Original_MQTTProperty_getType
FORWARD_EXPORT FakeMQTTReasonCode_toString, Original_MQTTReasonCode_toString
FORWARD_EXPORT FakeThread_create_mutex, Original_Thread_create_mutex
FORWARD_EXPORT FakeThread_getid, Original_Thread_getid
FORWARD_EXPORT FakeThread_lock_mutex, Original_Thread_lock_mutex
FORWARD_EXPORT FakeThread_start, Original_Thread_start
FORWARD_EXPORT FakeThread_unlock_mutex, Original_Thread_unlock_mutex
END