Jump to content

I found some more hidden INI keys


Sparkette

Recommended Posts

enableSecretPopups

They are a secret that's why you can't use them...but seriously they help with custom control development.  They are very incomplete but give some functionality that has been desired by the developers.  The interface for getting these much desired features is quite lacking, which is probably why this isn't public yet.  It can allow things like defining the behavior of a decal on a button, as the button changes size.  

 

By this I mean the decal can move as the button grows, or the decal can stretch.  You can also define if the decal (or text) can be resized or moved independent of the control.  Very neat stuff but yeah it can behave strangely if you enable some features at the same time which the interface doesn't restrict you from doing.

Link to comment

Thanks! I thought that one might have had its functionality removed, since "MathScriptFastPropTypes" is mapped to the same memory address, which is kind of strange. I'll add it to the list at the top. Do you happen to know off hand what other menu items it enables?

Oh, another thing: that PDF you linked to mention some new decorations that aren't in the palette. If they're not in the palette, how do you place them? (I also know there are other decorations that aren't in the palette, that I've found by manually editing the image ID of an object in memory (thanks, whoever made Heap Peek show memory addresses); is there a special palette with all the images hidden somewhere?)

 

I think there's actually more that just aren't loaded until they're needed. But there is a way to monitor every config token LabVIEW looks for. Download and install Cheat Engine (pay attention when installing it, as it may ask you to install "sponsored" stuff as well; CE itself is open-source and safe to use though.) Run the program and click the Memory View button without targeting any process. In the new window that appears, press Ctrl+L, or go to Tools->Lua Engine. In the box at the bottom of that window, paste in the following script, making sure to enter the path to LabVIEW.exe in the marked area, replacing every \ with \\:

LVEXEPath = "PUT PATH HERE"

createProcess(LVEXEPath, "", true)
CfgGetDefault = getAddress("LabVIEW.CfgGetDefault")
debug_setBreakpoint(CfgGetDefault)

function debugger_onBreakpoint()
    if EIP == CfgGetDefault then
        local a, b, c, d = readBytes(ESP+4, 4, false)
        local size = readBytes(readInteger(ESP+8), 1, false)
        local str = readString(readInteger(ESP+8) + 1, size)
        local addr = readInteger(ESP+12)
        print(string.format("%s (0x%X) [%c%c%c%c]", str, addr, a, b, c, d))
    end
    debug_continueFromBreakpoint(co_run)
    return 1
end

 

Finally, make sure LabVIEW is not running, and press Execute. LabVIEW will open, and Cheat Engine will list every INI token as LabVIEW looks for them. This is how I found the tokens I mentioned in the post at the beginning.

Edited by flarn2006
  • Like 1
Link to comment

Do you happen to know off hand what other menu items it enables?

 

To quote Greg McKaskle, "These obscure features are typically kind of like the attic or basement of a house, not finished out, not very interesting, and potentially harmful. [...] If you experiment with the .ini file and you crash mysteriously losing hours of work, I'd suggest putting the file back to the way LV left it. Don't ask tech support to fix it or complain that the LV attic has rusty nails and splinters." :-) But, if you really want to know, the token allows you to enable some features on subpanels that will most likely crash LabVIEW.

 

Some of the decorations are now in the Silver Decorations palette in LabVIEW 2014. I wrote about them on my blog: http://blog.eyesonvis.com/?p=824

 

The other way to get to the decorations is to copy them out of the parts of the Silver controls using the Control Editor.

Link to comment

Mwuhahahahaha! Three config tokens have escaped your grasp! ...  Do they guard any great secret of LabVIEW? I'm not telling!  But you can have fun pouring through the code and looking for interesting bits and trying to figure out what you need to put in your config file.

 

Not fair! not fair!  It isn't fair, my precious, is it, to not tell us what it's got in it's nassty little pocketsess?

Wicked, tricksy, false!

 

  • Like 1
Link to comment

Mwuhahahahaha! Three config tokens have escaped your grasp! I modified them specifically for folks like Flarn! They don't appear as plain text anywhere in the EXE (or in any VI for that matter). Do they guard any great secret of LabVIEW? I'm not telling! But you can have fun pouring through the code and looking for interesting bits and trying to figure out what you need to put in your config file. LabVIEW 2013 or later. Good luck.

 

If they are read by the same internal "CfgGetDefault" function, my script can find them. The only way they wouldn't be in that Pastebin dump I linked is if they are read by a different function or if they aren't read as soon as LabVIEW opens. If the former case, it'll take more work. If the latter, it's just a matter of running LabVIEW through Cheat Engine (with the Lua script running) and trying different things until it checks for that token.

 

But I accept your challenge, provided you're not just trolling. :)

Edited by flarn2006
Link to comment

Here's some more that may or may not have been in the initial Pastebin dump, found by doing random things in LabVIEW with the script running. Are any of these what you were talking about, Aristos? None of them seem too secret (with the exception of the misspelled "PaletteHidden..." ones, which are actually just lists of categories to hide), but you never know.

AssistantsUseStrictTypes
autoerr
autoToolOn
cacheAlignmentComplexityLimit
cacheAlignmentStrategy
cacheAlignmentUseReadsAndWrites
CaseDiagramInplaceSharingEnable
CloseHeapsAfterVISignatureCalc
customizeFPPopupMenus
DeepestAllowableRecursion
defPrecision
EditEventsDlgSize
EnableExternalDataValueReference
EnableRegisterCandidateDebugging
EnableRegisterCandidateLoopIndex
EnableSyntaxCheckrogressOutput
fadeEphemeralWires
failAutoRouter
FindVIsOnDiskLastDir
FindVIsOnDiskPosition
GarbageCollectionAtVIClose
grayOutMethod
GSW_filter
GSW_Pinned_Files
GSW_Pinned_Templates
GSW_Pinned_Templates_names
GSW_RSSCheckEnabled
hideBDPopupMenus
hideEmptySubPalettes
LaunchTimeBenchmarking
leftClickPopupPalette
loadAlwaysSearches
LocalHost
LVContextBannerPopUp
LVLibraryThemeColor
menu.4
NavigationWindowScrollInterval
NewDlgBounds
NewDlgCollapsed
NewDlgLastSelected
NewDlgRecentMainTemplates.pathList
NewDlgRecentTemplates.pathList
NewProj.maxNum
NewProj.RecentLocationPaths
NewProj.RecentTitles
NI_GSWPosition
NoAdvice070
NoAdvice080
OverrideDisabledCLFNs
PaletteHidddenControlCategories_LocalHost
PaletteHidddenFunctionlCategories_LocalHost
PalMenuResized.1
PalMenuResized.2
PalMenuResized.3
ProbeDefaultCache_14_0
ProbeIniCache_14_0
project.BuildsViewActive
project.DependenciesViewActive
ProjectExplorer.ClassicPosition
ProjectExplorer.ProjectItemsColWidth
ProjectWindowCanSave
PropPageBounds
propPageDebug
recentUserName
RegExpMatchLimit
resettingDlgDelay
SaveChanges_ApplyToAll
SaveChangesAutoSelection
SaveChanges_ExpandedAffectedFileList
saveFloaterLocations
ScaledToFitLocation
ScaledToFitWindowState
SCCDisplayOnlySelected
SCCDisplayWarningIfCheckedOut
SCCIncludeInstrLibInGetDependents
SCCIncludeVILibInGetDependents
SCCPromptToAddToAddSubVIs
SCCPromptToAddToProject
SCCPromptToCheckOut
SCCSelectCallersWhenCheckedOut
SCCSelectHierarchyWhenAdd
SCCUseDialogBox
serviceLocatorTimeout
showAllPalettes
ShowDeferDecisionDialog
ShowRemoteWindowsTargetWebDocRoot
ShowRTTargetWebDocRoot
showRunAtAnyLoopMenuItem
ShowWelcomeOnLaunch
ShowWireAddressMode
SnapGridShowsOnBlockDiagram
SnapGridShowsOnFrontPanel
SnapGridSnapsOnBlockDiagram
SnapGridSnapsOnFrontPanel
tileUpDown
ToolbarState
UnitDialogGroups
VISignature.ActiveDiagOnly
VISignature.SkipCPTM
VISignature.SkipFPDCO
VISignature.SkipLinkRefs
Edited by flarn2006
Link to comment

Mwuhahahahaha! Three config tokens have escaped your grasp! I modified them specifically for folks like Flarn! They don't appear as plain text anywhere in the EXE (or in any VI for that matter). Do they guard any great secret of LabVIEW? I'm not telling! But you can have fun pouring through the code and looking for interesting bits and trying to figure out what you need to put in your config file. LabVIEW 2013 or later. Good luck.

You're talking about this?

 

STR#_11400.bin.txt

Link to comment

Hope you all realize AQ is just using this thread to find out which doors might need to be closed.... :)

 

Actually, I think these type of threads (and there's a few lately thanks flarn2006) are good to have on LAVA, even if I'm unlikely to want to use the details provided.  They give more of a picture of the LabVIEW that is public by seeing bits of the scaffolding and ropes and pulleys holding it all together.

 

The responses also confirm a sense I have that NI is becoming more open about the design and implementation decisions and tradeoffs that define LabVIEW, and that in itself provides a more stable and reliable product.  And hopefully on LAVA it's parked enough away from the main flow to be seen only by those experienced enough to know how to handle it (i.e. very carefully!).

  • Like 1
Link to comment

For anyone watching this thread, I've found another one's purpose. (ShowHiddenLibraryItems.) Unfortunately I don't think it's one of those super-secret ones AQ was talking about, as IIRC it gets checked on startup. But hopefully I'll find those soon!

 

I've added this to the OP, but it basically shows a bunch of extra stuff when editing statechart libraries.

Edited by flarn2006
Link to comment

Actually, I think these type of threads (and there's a few lately thanks flarn2006) are good to have on LAVA, even if I'm unlikely to want to use the details provided.  

...

And hopefully on LAVA it's parked enough away from the main flow to be seen only by those experienced enough to know how to handle it (i.e. very carefully!).

I enjoy posts like this.  But with a moderator hat on it is difficult.  We can't hide behind the fact that we are a forum of "advanced" developers.  We are still a very public forum easily found.  Searching "LabVIEW Password Crack" in Google results in the first hit being NI's forums, and the second being LAVA (thanks BTW flarn).  There are topics we cannot talk about here, but then there are ones like this that are a grey area.  

 

I mean where would we be if the Super Secret INI key was never discussed?  Would NI not have developed and released scripting as quickly, or at all?

 

All methods and properties.

attachicon.gifms_and_ps.bin.txt

I am a man of few words...any questions?

Link to comment

I enjoy posts like this.  But with a moderator hat on it is difficult.  We can't hide behind the fact that we are a forum of "advanced" developers.  We are still a very public forum easily found.  Searching "LabVIEW Password Crack" in Google results in the first hit being NI's forums, and the second being LAVA (thanks BTW flarn).  There are topics we cannot talk about here, but then there are ones like this that are a grey area.  

 

I mean where would we be if the Super Secret INI key was never discussed?  Would NI not have developed and released scripting as quickly, or at all?

 

I am a man of few words...any questions?

 

Well with the password cracking thing, I can understand not wanting it to be posted here, as that can actually theoretically cause harm to companies that rely on the password protection to hide code. My opinion on the matter is that they were asking for it by relying on such an insecure system, but I understand if some people don't share my opinion. Same with the thread about enabling native XNode development that I posted with the admin's permission (and later changed my mind about and had removed after seeing what a negative response it was getting) just because of the kind of program you use to perform the hack.

 

As for this, however, it's not really stuff that could in any way hurt the reputation of the forums, or harm NI or anyone else. I'm just trying to find and expose stuff that NI didn't see fit to release for one reason or another, but that advanced users might like to play around with outside of important work. For science. (You monster.)

  • Like 2
Link to comment
  • 3 years later...

hi everyone, know it's an old post, but I realy need to do that in order to save time to my team.

here is what I want to do:

at LabVIEW lunch, running a vi that will configure some VI property in the LabVIEW pallet tools.

Per example changing text in a label using VI script.

My VI is working, but I wan LabVIEW to run it automatically on a LabVIEW start.

Thanks

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

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