反向工程一个VB6/Winsock/ADO应用程序

3
我使用了几个反汇编器/调试器/反编译器来逆向一个连接到远程数据库的VB6应用程序,它使用msado26.tlb和mswinsck.ocx。我了解到连接应该使用COM调用通过msvbm60.dll完成。有人说像__vbaObjSet、__vbaLateIdCallLd、__vbaHresultCheckObj、__vbaNew2这样的函数应该与正确的CLSID一起作为参数传递给调用。然而,我无法找到确切的调用位置。我的问题是:哪个"反汇编指令序列"将调用Winsock或ADO库?

你想要发现什么信息?你可以创建一个简单的VB6可执行文件,实例化一个ADO对象,然后查看它所做的运行时调用。 - Alex K.
你对后端数据库了解吗?如果它类似于SQL Server,那么在数据库上放一个追踪可能会更容易看到应用程序对数据库的操作。 - OldBoyCoder
1个回答

0

只需在这些函数上设置断点,然后检查堆栈和寄存器中传递的参数,并尝试将最终的十六进制值与您要查找的 CLSID 进行比较。


vbaNew2 可能是唯一一个会获得 CLSID 的,其他调用可能会处理已实例化的对象。 - OldBoyCoder
请注意,对于晚期绑定和早期绑定,调用堆栈可能是不同的。听起来很有趣。 - OldBoyCoder
那么,解决方案是什么呢? - Mohamed YOUNES

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接