Is there a decompiler for LABView v4-v6

Hello,
One of our customer (Pharma industry) has a compiled LABView application running on Win98 for +10 years. The source code is not available and it seems nobody knows what's under the hood. Based on Win98 dates, I expect them to run a LABView version between v4 and v6.
Is there a decompiler software, any ways to look at the source code or to retrieve some basics information to start reverse engineering.
Thanks for you answers!
Alex
[email protected]
Solved!
Go to Solution.

The whole issue is a little bit more complicated. Before LabVIEW 8.6 the internal executable resource was indeed a LabVIEW VI archive (LLB) and since LLBs have only one hierarchy depth it is basically like a single directory. This caused troubles with the newer LV library based instrument drivers and also LVOOP classes which use the same VI name but with a different library prefix each, so that LabVIEW had to move those files to external directories when building executables, in order to avoid naming collisions.
In all newer LabVIEW versions the internal executable resource in which the VIs are stored is in fact a ZIP file by default. You still can force LabVIEW to use an LLB format to store the files, by enabling the "Use LabVIEW 8.x file layout" in the Advanced build options. Now the ZIP resource was in the beginning stored as simple ZIP formatted data resource and that caused some problems since most ZIP utilities simply scan a file for the ZIP file header and open it as such, even if the actual ZIP file resource is anywhere inside the file, so that almost all ZIP tools could open a LabVIEW executable. NI changed that format so that ZIP tools can not recognize it anymore.
Now, yes you could look into the LLB and ZIP resource in the past (and still can with some extra effort) but before anyone screams "Ohhh my precious IP is on the street" please be aware that the only thing you can do from such a resource is to get the VI names and if you manage to load it into the exactly right LabVIEW version drop the generic icons onto a diagram to see the connector pane. Unless of course you also check the "Enable debugging" checkbox in the Advanced build options, which will leave the diagrams and frontpanels in the VIs, and in fact create something similar to a packed source distributions.
So without the Enable debugging build option, someone gets in fact not much more than what he can do by opening any binary DLL created from C, C++, or whatever mainstream compiler with the dependency tool from Microsoft and MUCH MUCH less than what you can get by simply putting such a DLL through a disassembler.
And to my knowledge there does not exist any disassembler like tool for LabVIEW VIs so far, and I would consider about one billion things more worthwhile to do than attempting to create such a thing.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • Is there a way for Labview to take control of a file that is already in use

    Is there a way in LabView to programatically take control of a file in use by another process?  I wish to write data to files that may be opened by another process, this data is time sensitive and acquired continuously so having my process wait until the file is available is not feasible.
    There should not be any other software accessing these files but sometimes windows is looking at them for some reason and I'm not sure how to make windows let go of them.  This does not accur often but it is annoying.

    Axehandler wrote:
    Is there a way to find out which program/service might be opening these files?
    Yes, use handle or process explorer from sysinternals. (see also).
    How is your labVIEW program structured? Could it be that your LabVIEW program itself holds on to the file from e.g. a previous file IO operation? Make sure references don't become invalid (e.g. via a "use default if unwired output tunnel) which would prevent the file from getting closed properly for example. Your program should open the file once at the start of the program and keep it open for the duration of the run. This way you should not have any intermittent problems accessing it.
    LabVIEW Champion . Do more with less code and in less time .

  • Is there a way for LabVIEW to know if the computer has an ethernet connection active?

    I need to know in my VI if the computer has a network connection, to avoid trying to connect through TCP/IP when the connection is not available. I would prefer to know if there is a connection available rather than rely on errors coming from the TCP/IP functions not being able to connect.
    Windows instantly knows when a network cable is unplugged. Is there a function in LabVIEW that can similarly instantly detect a connection?
    Or, does anybody know if there is a Windows-provided dll that contains the function that the taskbar indicator uses to know if there is a connection present. If there is, then I could call the dll from LabVIEW and know the connection status.
    Thanks.
    Alejandro

    Hi there,
    there`s an API
    unsigned long WNetAddConnectionA(CStr lpRemoteName, CStr lpPassword, CStr lpLocalName);
    in mpr.dll.
    lpRemoteName the address of a network resource (e.g. "\\YOURSERVER\YOURDRIVE")
    lpPassword may be NULL
    lpLocalName should be NULL, otherwise the API maps lpRemoteName to the drive you specify in lpLocalName (e.g. lpLocalName = "e:")
    if all is ok, the API returns 0, otherwise some errorcodes.
    more info can be found here
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wnet/wnet/wnetaddconnection.asp
    best regards
    chris
    Best regards
    chris
    CL(A)Dly bending G-Force with LabVIEW
    famous last words: "oh my god, it is full of stars!"

  • Is there any object in labview that contains a list of data for the user to select (selection one at a time) or add a new data?

    Is there any object in labview that contains a list of data for the user to select (selection one at a time) or add a new data?

    List and table controls -> listbox..is that what you are thinking of?
    The listbox presents the user with a list of options, and you can set it to only accept one selection at a time...Adding new data to the list can not be done directly by the user but if you make e.g. a text control and a button you can programatically insert new objects described in the text box when the button is pressed...(see example).
    If you need more than one column you have the multicolumn listbox. If you want the users to write new entries directly yu can use a table and read selected cells using it's selection start property to read what cell has been selected.
    MTO
    Attachments:
    Listbox_example.vi ‏34 KB

  • Is there compatible motion driver for LabVIEW 8.6?

    Is there compatible motion driver for LabVIEW 8.6? The latest motion driver seems to be 7.6 and it only support up to LabVIEW 8.5...

    If you buy LabVIEW 8.6, you will also get 2008 August Driver CD.
    NI-Motion 7.7 driver should be included in it.
    Or you can wait for a while.
    I guess NI will put on Web these days.

  • We collected data using NI in the Labview environmen​t and created tdms document. Is there a reader for reading the data in Matlab environmen​t?

    We collected data using NI in the Labview environment and created tdms document. Is there a reader for reading the data in Matlab environment?

    A search will often turn up results.
    Reading TDM/TDMS Files with The MathWorks, Inc. MATLAB® Software

  • Is there any Model for Mosfet in Labview

    Iam Interested and curious to know if there is any
    Mosfet model in Labview .Also I would like to know
    is there any means of creating a model for new devices
    or existing devices in Labview.

    Good answer Patrick,
    As a matter of fact, I did almost just that. I developed a modeling tool for FET devices in LabVIEW. It is based on my pure-G all-purpose small-signal and noise circuit simulator. I can say that LabVIEW works just fine for this purpose. The task is rather complex but not too complex for LabVIEW. What is too complex for LabVIEW anyway? ;-) The key here is to master the theory behind all computations. /Mikael

  • Is there a way to get video acquisition for LabVIEW through the USB port?

    Using either the LabVIEW version 7 or lower versions.

    jeff au;
    You may want to check IVision for LabVIEW:
    http://www.geocities.com/irene_he/IVision.html
    Regards;
    Enrique
    www.vartortech.com

  • Report Generation toolkit for labview 2010

    H All.
    I'm looking to download the report generation toolkit for labview 2010. When I proceed to download the toolkit from the national instrumnets website, it says that i need to labview 2011 or later in order to install it.
    Is there a version of this report generation toollkit for labview 2010 and can someone provide a link maybe??.
    Thanks for reading.
    Solved!
    Go to Solution.

    Try this: [Link removed, NI software downloads can be found on ni.com/downloads, the LabVIEW 2010 Report Generation Toolkit is available to customers with Standard Service Program here: http://joule.ni.com/nidu/cds/view/p/id/3247/lang/en, other customers may contact NI directly]
    Beginner? Try LabVIEW Basics
    Sharing bits of code? Try Snippets or LAVA Code Capture Tool
    Have you tried Quick Drop?, Visit QD Community.

  • Third-Party Licensing and Activation Toolkit for Labview 8.5

    There is any Third-Party Licensing and Activation Toolkit for Labview 8.5 as LV2010. PLS help..
    Solved!
    Go to Solution.

    I know what you are asking and in the other thread, you were told it was for 2010 only. There is some support for 2009 but not for your old version. Go with the dongle suggested or upgrade your version of LabVIEW.

  • Where can I find GPIB drive for Stanford SR830 lockin amplifier for labview 6?

    Hi I am trying to work with the lockin amplifier (Model: Stanford Research SR830). Unfortunately, my computer only has labview 6 installed. Could you please let me know where I can download a SR830 driver of GPIB version for labview 6? I have checked the NI website. Only drivers for LabVIEW 8.0 and up are available here. http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=240C113D3165071BE0440003BA7CCD...
    Please let me know. If any one could upload one, that would be so great. Thank you.

    Hi Wayne,
    I am assuming you obtained the drivers from ni.com/drivers webpage? You can ask someone to convert it for you on the version conversion board and you should be good to go. If you create a new thread there please post the link to it over here so we can continue assisting you. Thank you and good luck!
    Regards,
    Basil
    Applications Engineering
    National Instruments

  • Hp driver for labview for hp8156a attenuator

    I am looking for a hp8156a driver for labview. There is not one posted in the driver section of this site. Thanks

    Here is a link to the programming manual. Section 8 shows the commands. It will take some work, but you can write your own drivers.
    http://www.home.agilent.com/upload/cmc_upload/All/opat0500.pdf
    Message Edited by unclebump on 07-12-2005 04:21 PM

  • Is there a simulator for the USB-6009?

    Is there a simulator for the USB-6009 that I can download and install? I installed the disc that came with the board, however, no simulator.
    Thanks,
    Chris

    Hi
    You could simulate diferent device in Measurent and Automation Explorer (MAX) but I don't see there your modul USB-9009.
    There are odere module, but not this module.
    Regards
    bogdani
    Polish LabVIEW Center - www.labview.pl

  • Functions in IMAQ Vision for Labview same as those in Vision Builder?

    Hi all...
    i just have a simple question..Does IMAQ Vision for Labview has the same functions of Vision Builder?
    I know that with Vision Builder you can develop an application interactively...but does it has more functions than IMAQ Vision?
    So if i buy IMAQ Vision can i develop the same kind of applications that i would make with Vision Builder?
    I´m specially interested in color matching and color analisys functions.
    Thanks

    IMAQ Vision has much more than Vision Builder. Basically, VB was created using Vision and they implemented a good number of the functions in a menu driven format. However, there are many more functions available that were not integrated into VB.
    Vision does have some good color matching and analysis tools.
    Bruce
    Bruce Ammons
    Ammons Engineering

  • ActiveX wrapper for Labview

    Hello!
    My name is Daniel. I'm from Argentina and I work in Tracnova S.A.
    Tracnova is the Distributors of NI in Argentina.
    I am having an issue with ActiveX development for wrapper an dll driver.
    I have to read strain gage aquisition data from an USB device of MANTRACOURT (http://www.mantracourt.co.uk/products/wireless-telemetry).
    The manufacturer provide an dll driver. It's shipped with example for VB6 that I have been testing and it works fine.
    BUT I HAVE TO USE IT IN LABVIEW.
    My first problem is that I have to provide an CALLBACK function pointer as parameter to "INITIALISE" function of the dll. Here is an excerpt from the
    example that is shipped (Excerpt from a form module):
    Private Sub Form_Load()
        'we will only handle base station addresses of 1
        iBaseAddress = 1
        Caption = Caption & " [DLL v" & VERSION & "]"
        CLOSEPORT
        'set the callback so we can receive data provider packets
        Init AddressOf CallBack  ''''''----------------->>>>>>>>>>>>>>>> CALLBACK function pointer as parameter to "INITIALISE" (It defined as Init)
        'Open USB interface
        ok = OPENUSB
        If ok <> 0 Then
            ShowMessage "Cannot open USB interface!" & vbNewLine
        End If
    End Sub
    "CallBack" function is contained within .bas. Because You can only retrieve the address to a function or sub (public or private) contained within a
    Standard VB Module.  There's no way around this.
    Here is an excerpt from the example that is shipped (excerpt from a Standard Module):
    Sub CallBack(ByRef StringPtr As Long, Length As Long)
        Dim PBMsg As String, rc As Long, pEnd As Long
        Dim p(128) As Byte
        Dim cH As Byte
        Dim tID As Long
        Dim C As Integer
        On Error Resume Next
        CopyMemory p(0), ByVal StringPtr, Length
        PBMsg = Left$(StrConv(p(), vbUnicode), Length)
        'strip off the base station wrapper
        PBMsg = Mid$(PBMsg, 4, Len(PBMsg) - 5)
        If PBMsg <> "" Then
            Debug.Print CVStr2HEX(PBMsg)
            Select Case Asc(Mid$(PBMsg, 1, 1)) And &H1F
            Case PT_DATA_PROVIDER
                'pass data to the main form if we are not closing
                If Not Closing Then MainFrm.ShowMessage "DATA_PROVIDER Data Tag=" & Replace$(CVStr2HEX(Mid$(PBMsg, 2, 2)), " ", "") & " Data=" & Decode
    (Mid$(PBMsg, 5, Len(PBMsg) - 6)) & vbNewLine
            End Select
        End If
    End Sub
    Then, when an data packet arrived, the driver call to "CallBack" function instead, so I can process it and do what I need.
    But I can't pass pointer to function IN LABVIEW WITH "LOAD LIBRARY FUNCTION". So I did an ActiveX in VB6 for wrapping the dll of the driver. I attached the
    files tha I did. The ActiveX sends an event to labVIEW everytime that a data packet arrived. I trigger an event inside the CallBack function that it's
    not working, but if outside (look inside Iniciar() function where I wrote "This is the first event", the event trigger works.)
    Why is not THE CALLBACK FUNCTION TRIGGERING THE EVENT INSIDE THE LABVIEW??
    I also tried to make a Win32 DLL with C + + using PostLVUserEvent, but neither worked for me. I can send the code in C + + if you want to review.
    Thank you for your consideration. I look forward to hearing from you.
    Best Regards
    Daniel Lopez
    Design Engineer
    TRACNOVA SA
    www.tracnova.com
    Attachments:
    ActiveXPropia.zip ‏459 KB

    Thanks a lot nyc for your kind reply.
    Yes, you are right. They have COM driver, but the event does not fire in labview. Also, this driver does not implement a COM circular buffer which means that if you delay reading and processing the data, these are lost because they are rewritten. I have been asking for support to MANTRACOURT, but after several attempts, they told me they do not provide support for labview only for VB, VBA excel, and some other more, not even C + +     
    National I miss to much. Nice technical support !
    Please help, I need to fix this issue
    Thanks a lot!
    Daniel

Maybe you are looking for

  • Will my Mac become too old to run an iPhone in 18 months?

    Hi I have an iMac G4, which at 700 MHz is too slow to automatically upgrade to Leopard and is currently running 10.4.11. Can I be confident that if I buy an iPhone on an 18 month contract I will still be able to use it with my Mac for some time into

  • Lightroom

    when I try to open Lightroom I get a message,"assertion failed"? It wont open

  • Table control in Screen Enhancement.

    Hi Experts, I have implemented QQMA0001 screen exit. In that sub screen I created a table control for which I need to place 'DELETE' and 'INSERT' push buttons. But the push buttons on the subscreen (Push buttons can not be created on sub  screen) is

  • Source XML data type declaration querry

    Hi all, I am very confused in below XML data type declaration. I am dealing first time with this type of XML. In source XML header items are mentioned in header node(address). <address addressline1="6th & Hunt" addressline2="" city="Pryor" state="OK"

  • Off line viewing of sent messages stored in ICloud.

    I would like to store sent messages on the server but also keep a copy on my mac for offline usage.  Is this possible?