Jump to content

Mefistotelis

Members
  • Posts

    93
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Mefistotelis

  1. When I'm trying to figure out checksums, I'm first trying various online tools which compute them. They often support many varieties.

    Checksum byte is very rarely used for checksum. I've seen once an algorithm which used that area, assuming it is zero filled.

    Count is sometimes included, sometimes not - hard to judge.

     

    If a simple check with few sites/tools won't help, i'm going into REing the code. It is simpler than checking all possibilities.

    Also, implementations of CRC used in various products are often incorrect, ie. incorrectly treating sign, byte order, or just having a typo. So sometimes it's not possible to figure out the algorithm without reversing the target code.

     

  2. 21 hours ago, ShaunR said:

    application developers can't rely on many standard features out-of-the-box, from distro-to-distro, therefore fragmenting application developers across multiple distro's

    There are two APIs to graphical systems: X-window and Wayland.

    X-window contains compatibility layer for Wayland, Wayland contains compatibility layer for X-window. And most libraries which help creating GUIs allow to compile the same user code for both.

     

    Microsoft won by donating Windows to schools, and providing courses for teachers. This paid out over years, making Windows a template by which all OSes are judged.

    Now, at least is EU, there is a movement to require open-source OS in all public institutions. This should, over years, remove some of that bias.

     

  3. Depends on a kid. Depends on his interests.

     

    If you're just after programming a PC:

    Scratch is quite popular. There's also similar thing called Blocky.

     

    If the kid won't get into things unless that's a game:

    Baba is you is a great game for kids.

    He probably already has some favorite games, and many games today use LUA. So he could also start modifying a game he knows using LUA scripts.

     

    If he prefers to drive something mechanic, like a robot:

    There are some DJI products for kids, like Robomaster or Tello. Not the cheapest, but high quality. You can program these.

    There are actually many programmable robots and robotic arms for kids, just search the net.

    Arduino is also easily programmable, and there are many sensors, LEDs, displays, motors etc. which you can drive with it.

     

    • Like 1
  4. On 12/25/2020 at 7:30 PM, Neil Pate said:

    Remove support for Linux and Mac and start to prune this cross compatibility from the codebase. I know this is going to get me flamed for eternity from 0.1 % of the users. (You pretty much made this decision for NXG already). Windows 10 is a great OS and has won the war here.

    I actually don't care enough for LV to get triggered by the first sentence. But the last one... 😡

    • Thanks 1
  5. Typically, people tend to use 'repo' from Android to make a project from multiple git repos. It's a lot more flexible than submodules.

    With 'repo', you create a 'manifest' (or multiple manifests) which contain all repositories to be included, with indication on branch and commit to be used.

    It's intuitive, and anyone who worked with Android already knows how to use it.

     

  6. 1 hour ago, X___ said:

    Note that the discussion was not about whether or not LabVIEW is on its way to dominate the landscape, but where it is discussed (both are certainly related).

    Right; sorry, I had attention span only to read a few last posts.

    10 hours ago, Rolf Kalbermatter said:

    I'm not sure if Github actively monitors for LabVIEW projects and based on what criteria (file endings, mention of LabVIEW in description, something else?).

    From a few projects I looked into, only text files like *.lvproj files seem to be detected. Projects with only VIs in them are not marked as LabVIEW, no matter how much are there or what's the file/project name.

  7. The idea of comparing a quarter instead of full timeline is to have kind of derivative of the use of each language - change in the amount of uses, instead of the total uses. Popularity of LV is on decline for several years now. Whether it's 38th or 51st on a chart isn't going to change much.

    There are many reasons why that is happening; lack of long-term strategy is visible. There was no reaction to HW engineering being transformed from diagrams into Hardware Description Languages. There was no reaction to major languages giving jurisdiction over specifications to non-profit standardizing orgs. For govs shifting towards open-source SW in bureaucracy and education. Even the reaction to expansion of Code Versioning Systems was lacking. That would be a long post if I tried to list all such missteps.

    I'm wondering if there is a strategy now. Some recent actions may suggest NI did set up some goals to reach. I wonder if they realize how far they have to go to reverse the trend in the world we have now.

  8. 14 minutes ago, sam said:

    I know you are showing this as proof of concept and it is great work and progress so far.

    Yes. What I didn't mention in the video is - ATM the tool only supports the specific components I put into project. I didn't even looked at other controls yet. And for various flavors of numeric/boolean controls - all we can figure out is whether that's a control or indicator, the specific visual representation of the switch is lost - recovered one always looks the same.

     

    14 minutes ago, sam said:

    It maybe helpful to think of these points below while you are doing your LabVIEW RE.

    Thank you, will consider that. Complex projects are already supported - you just need `find` to list all extracted files, and do the 3 actions for each of them: extract to XML, recover FP, re-create VI.

     

    14 minutes ago, sam said:

    also bug fix:  at 12:57. the numeric values show "1,1" instead of "1".

    Default data type for that numeric control is Double. For this type, my tool sets an increment of 0,1. If it was Integer, the increase would be 1. The original value of that increment is lost with the removal of FP.
     

  9.   

    29 minutes ago, Antoine Chalons said:

    At the end of the video you don't go too much into details about the missing block diagrams

    Oh, going into that is definitely not for 15 minutes video. Recovering it completely and automatically, for every VI - would be a project for several months (considering this is my afternoon project). It's way easier to make partial recovery, requiring the user to finish. And just placing block diagram with the components we've already recovered for FP - is trivial.

    36 minutes ago, Antoine Chalons said:

    I also noticed that the icon of the subvi is missing - that's not very important

    Yeah, noticed that as well.. the whole connectors pane is very easy to handle, I will likely fix that in the nearby future.

    37 minutes ago, Antoine Chalons said:

    after recreating the VIs from the EXE, if you replace the subVI with a newly created one with the same connector pane, are you able to generate the EXE?

    Yes. That is probably the main use of that solution - recover the project without Block Diagrams, then re-create only VIs that need updating, and re-build everything.

     

  10. I sorted all the extracted LV14 files by size, and one stands out.

    Size of Block Diagram in XML form: 15MB

    And the size is not due to some binary blob stored inside - no, the is just a lot of parts in the block diagram heap.

    Amount of XML tags:

    # xmllint --xpath "count(//*)" ex_allChanPropsMod_BDHb.xml
    234903

    File: vi.lib/Platform/express/ex_EditUserDefinedProperties/ex_allChanPropsMod.vi

    And its content isn't even that impressive:

    ex_allChanPropsMod.png.7624205ca948484040513ec44042ab93.png

    There are just a lot of cases hiding in the "Case Structure", and a lot of copies of the same chunk of diagram within each case.

    Also the file seem to have syntax errors? Is it normal that some library files from NI doesn't even compile?

  11. 10 minutes ago, pawhan11 said:

    those special tags like <vilib> are somehow predefined in LV?

    Yes. "&lt;" and "&gt;" are just symbols used to allow storage in XML; these are so-called HTML Entities. So this string really is "<vilib>".

    10 minutes ago, pawhan11 said:

    Can I create my own custom tags that LV will understand? Or something like probing or assemblyresolve in c#?

    No idea. There are more tags which can be used, but I never cared for listing them, or checking whether they're all hard-coded.

    EDIT: Reading @Rolf Kalbermatter answer above, I see he already answered this.

     

     

  12.   

    54 minutes ago, pawhan11 said:

    id You by any chance see how paths to dependencies are stored inside exe/packed libraries?

    Yes. Extract your file, and paths will be in XML.

    "LVPath" is actually a class, which is instantiated for many things. So all paths basically have the same structure.

    I export it to XML as list of strings - this is how it is really stored. Elements in the list are either normal strings, or tags which LV replaces with value from current config. Example:

      <LIvi>
        <!-- LinkObj Refs for VI -->
        <Section Index="0" Format="inline">
          <LVIN Unk1="NI_InternetTK_Common_VIs.lvlib:Close Calling VI's Windows.vi" Unk2="">
            <!--  VI To Lib Object Ref  -->
            <VILB LinkSaveFlag="2">
              <LinkSaveQualName />
              <LinkSavePathRef Ident="PTH0" TpVal="0">
                <String>&lt;vilib&gt;</String>
                <String>addons</String>
                <String>internet</String>
                <String>NI_InternetTK_Common_VIs.lvlib</String>
                </LinkSavePathRef>
              </VILB>
            </LVIN>
          </Section>
        </LIvi>

     

  13. Thank you!

    That added some important info to my list:

    https://github.com/mefistotelis/pylabview/blob/master/LVcode.py#L224

    A little below the arch list, there's getVICodeProcName() function where I added mangled names for the dispatch table items which I got from LV for MacOS.

    Pylabview will now, upon extraction of a VI file, create a MAP file with offsets and names of known symbols within the executable bytecode.

     

  14. On 6/30/2020 at 1:40 PM, Rolf Kalbermatter said:

    each supported platform (m68k, mppc, mx86, sparc, wx86, wx64, vxwk, arm, etc)

    Do we have a full list of these architectures somewhere? I've seen:

    'i386', 'wx64', 'ux86', 'ux64', 'm386', 'mx64', 'PWNT', 'axwn', 'axlx', 'axdu', 'ARM ' (those are all little endians)

    I'm not exactly sure what each of these means.

    Are different OSes counted as separate architectures?

     

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.