{"id":1444,"date":"2013-01-04T22:27:29","date_gmt":"2013-01-04T20:27:29","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=1444"},"modified":"2013-02-02T19:02:21","modified_gmt":"2013-02-02T17:02:21","slug":"rotview-what-is-on-rot","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/1444","title":{"rendered":"RotView: What is on ROT?"},"content":{"rendered":"<p>Once upon a time Windows SDK (or it was Visual Studio) had a tool named <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/aa271760%28v=vs.60%29.aspx\"><code>IROTVIEW<\/code><\/a> which enumerated <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms695276%28v=vs.85%29.aspx\">Running Object Table (ROT)<\/a>.<\/p>\n<blockquote>\n<h4>Running Object Table Viewer<\/h4>\n<p>IROTVIEW displays information about ActiveX and OLE objects currently existing in memory.<\/p>\n<\/blockquote>\n<p>People ask <a href=\"http:\/\/social.msdn.microsoft.com\/Forums\/en-US\/vsx\/thread\/ccccc9bd-f21a-4f74-a3f0-64a594fa1b16\/\">&#8220;Where is IROTVIEW?&#8221;<\/a> and there is no answer.<\/p>\n<p>The API is really simple, but if you want a quick check what&#8217;s on your ROT you still want a handy tool. In particular, you might want to check ROT if your app is using <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms221551%28v=vs.85%29.aspx\"><code>RegisterActiveObject<\/code><\/a> API to publish active COM objects. Here we go, this <code>RotView<\/code> application lists the ROT contents:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2013\/01\/Image0012.png\" alt=\"RotView UI\" width=\"639\" height=\"283\" class=\"alignnone size-full wp-image-1445\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2013\/01\/Image0012.png 639w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2013\/01\/Image0012-320x141.png 320w\" sizes=\"auto, (max-width: 639px) 100vw, 639px\" \/><\/p>\n<p>Available in both <code>Win32<\/code> and <code>x64<\/code> versions, it also shows OS marshaling of ROT entries and their availability to &#8220;both worlds&#8221;. The application does more:<\/p>\n<ul>\n<li>Shows COM class descriptions for active COM objects, path to binary that hosts COM class<\/li>\n<li>&#8220;Probes&#8221; COM objects by trying to query <code>IUnknown<\/code> of a ROT entry<\/li>\n<\/ul>\n<p>Hint: Hold Ctrl+Shift to have a tool tip popping up duplicate its content onto clipboard.<\/p>\n<h3>Download links<\/h3>\n<ul>\n<li>Partial Visual C++ 2012 source code: <a href=\"https:\/\/www.alax.info\/trac\/public\/browser\/trunk\/Utilities\/RotView\">Trac<\/a>, <a href=\"https:\/\/www.alax.info\/svn\/public\/trunk\/Utilities\/RotView\">Subversion<\/a><\/li>\n<li>Binaries: Win32 \u00e2\u20ac\u201c <a href=\"https:\/\/www.alax.info\/svn\/public\/trunk\/Utilities\/RotView\/_Bin\/RotView-Win32.exe\">RotView-Win32.exe<\/a>, x64 \u00e2\u20ac\u201c <a href=\"https:\/\/www.alax.info\/svn\/public\/trunk\/Utilities\/RotView\/_Bin\/RotView-x64.exe\">RotView-x64.exe<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Once upon a time Windows SDK (or it was Visual Studio) had a tool named IROTVIEW which enumerated Running Object Table (ROT). Running Object Table Viewer IROTVIEW displays information about ActiveX and OLE objects currently existing in memory. People ask &#8220;Where is IROTVIEW?&#8221; and there is no answer. The API is really simple, but if&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/1444\">Read the full article<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[95,456,453,455,454,202,452],"class_list":["post-1444","post","type-post","status-publish","format-standard","hentry","category-utilities","tag-com","tag-getrunningobjecttable","tag-irotview","tag-irunningobjecttable","tag-registeractiveobject","tag-rot","tag-rotview"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=1444"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1444\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=1444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=1444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=1444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}