Problem importing binary registry key into Windows - binary
I exported a binary (REG_BINARY) registry value from my computer (IE setting). I need to re-import this into another computer (both Windows 7). When I try to import the registry file (same one that I exported), I get this error: "Cannot import file.reg. Not all data was successfully written to the registry. Some keys are open by the system or other processes." I've tried importing in safe mode with to no avail. After some general research, it seems I need to import binary data a special way, but I can't seem to make it work. This is the registry key:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\User Preferences]
"88D7D0879DAB32E14DE5B3A805A34F98AFF34F5977"=hex:01,00,00,00,d0,8c,9d,df,01,15,\
d1,11,8c,7a,00,c0,4f,c2,97,eb,01,00,00,00,35,9a,4f,4f,a4,58,47,4b,b0,5d,78,\
59,a6,1d,01,df,00,00,00,00,02,00,00,00,00,00,03,66,00,00,c0,00,00,00,10,00,\
00,00,60,cf,a0,df,fc,ef,bc,e4,f4,71,a7,e8,ad,4c,3b,5f,00,00,00,00,04,80,00,\
00,a0,00,00,00,10,00,00,00,80,30,65,dd,2e,3e,2e,45,c0,5b,09,8f,3e,f2,88,79,\
50,00,00,00,24,c2,46,26,e7,85,28,9a,fd,e0,5f,78,ba,7d,04,c8,34,47,5c,ef,64,\
bb,7a,be,f8,c4,dd,88,b5,b1,39,c1,19,9b,81,a3,92,ab,7a,70,8f,dd,19,0c,7f,af,\
66,7d,66,e5,e9,16,6c,20,2b,fa,4a,dd,2b,24,de,df,0a,b2,83,84,29,a7,37,8e,33,\
b7,56,53,f5,a0,34,0b,8c,42
Any ideas how I can import this into another computer? Thanks!
Spent some time to sort out this key. It is only accessed when manipulating the search providers in IE. These changes appear to be done under a very protected code path that controls access to this key. This seems reasonable as the search provider is an attack vector that has been exploited by malware/spyware/adware. I am pretty sure you will not be able to manipulate this key directly without running into issues.
Jason
Related
Importing parts of luis in json
I am working on a production app using luis. I have 2 luis instance containing a preproduction and a production version. When I develop a new functionnality, I add my intents and uterence in preproduction first. I found a button for downloading the json of intents and Entities. Now I would like to import this json or part of it in my production but I can't find it... Did someone here succeded doing it.
Go to Manage > Versions and use Import version button: Before importing, make sure that you modified your LUIS json to match the following: versionId should be changed to be the right value you want in your production side name field must also match the production project name Then you will have this version imported you will be able to train it, and publish it once you're ready. Quick reminder: this imported JSON does not contain any changes that you could have made in Production version, it's only like a backup / restore from what you have in Pre-Production
There are different ways you can approach it. If you are importing the model from another app entirely, just go to Manage->Versions and then select Import Version. You cannot import if the versionId (Version Name) if the same as one as you have already (you can rename versionId in the json file if needed). Alternatively; if the preproduction version is in the same app; just publish to the Production slot. Then, you can clone that to be the next preproduction for further modification and development. As #Mandar pointed out; it will help if you clarify what you mean by "can't find it".
yii2: model relations error can't find another class in ubuntu server 16.04
I have upload my YII2 project to ubuntu 16.04. My source is no problem when run on localhost on my computer, but when I run it on the server ubuntu 16.04 with network, it has a problem. The model source can't find another relation model public function getLokasiAwal() { return $this->hasOne(KotaBandara::className(), ['id_kota' => 'lokasi_awal']); } and i have error Class 'backend\models\TypeNonstaf' not found I have found the solution, I added the following code: use backend\models\Kotabandara; On top in model file but, in my source in localhost, I do not need to add that code Can someone explain that issue??
As #rob006 pointed out, it appears that you had been working/running your app on a Windows local file system, which is case-preserving, but not case-sensitive. When you first call upon a namespaced class directly or via the use operator, it passes this full class name as $className into yii\BaseYii\autoload::($className) (Yii2's global class autoloading handler), which in turn attempts to include the corresponding class file, if found. So, on your Windows local machine, when you use backend\models\KotaBandara, it will find and include any file associated with the corresponding path alias in a case-insensitive manner, thus it will find any of: #backend/models/KotaBandara.php #backend/models/Kotabandara.php #backend/models/kotabandara.php #backend/models/KoTaBaNdArA.php There can be only 1 target file with this sequence of paths/characters anyway. However, when you migrate this code to a Ubuntu system, which is both case-preserving and case-sensitive, there is a distinct difference between KotaBandara.php and kotabandara.php and in fact both files can exist side by side, unlike on Windows. So, you have to be precise here - on Ubuntu, use backend\models\KotaBandara will trigger the autoloader to find only the file whose path AND case matches, i.e. KotaBandara.php. If you named the file kotabandara.php, it will be found on Windows, but not on Ubuntu!
Protect Air application content
On Mac Os, I see that all content on my application can be readable (mxml and as files). Indeed with right clic on application, you can see all application content and so all files. So It's very dangerous for a company to distribute air application like that. Is a solution exist to protect those files. Thanks
It is not possible to protect 100% your code. After all, if the computer can run it, it can be decompiled, regardless of the language. However, you can make it more difficult. One method is to encrypt the swf as stated in another answer. But all the "attacker" needs to do is find the key and then they can decrypt all your swfs. Another method is to use obfuscators. Obfuscators don't depend on encryption, nor they prevent decompiling, they just make it harder to understand what gets decompiled. For example if you had a method called saveInvoice() the obfuscator would rename it to aa1() or something like that, so it would make it diffucult to guess what that function does. It basically turns everything into spaguetti code. You can use a decompiler to see what can be obtained from a SWF file (which is alot), and play with obfuscators to see if they meet your espectations. An example of one is http://www.kindi.com/ which I'm not endorsing btw, it just shows up quickly on google.
Although there are loads of decompilers which can read all your code. There is one guy who came up with encryption solution it might worth a try. (It's for Desktop AIR applications) Have a look at this post: http://forums.adobe.com/message/3510525#3510525 Quoted text (in case of page being erased) The method I use will allow you encrpyt most of your source code using a key that is unique to every computer. The initial download of my software is a simple air app that does not contain the actual program. It is more like a shell that first retreaves a list of the clients mac addresses and the user entered activation code that is created at time of purchase. This is sent to server and logged. The activation code is saved to a file client side. At the server the mac address and activation key are used to create the encryption key. The bulk of the program code is then encrypted using that key, then divided into parts and sent back to the client. The client puts the parts back together and saves the encrypted file. At runtime the shell finds the mac address list and the activation key, then using same method as server gets the encryption key and decrypts the program file. Run simple check to make sure it loaded. For encyption i found an aes method that works in php and javascript. Next I use this code to load the program var loader = air.HTMLLoader.createRootWindow(true, options, true, windowBounds); loader.cacheResponse=false; loader.placeLoadStringContentInApplicationSandbox=true; loader.loadString(page); This method makes it very difficult to copy to another computer although since I wrote it i know there are some weeknesses in the security but to make it harder i obv. the shell code. It at least keeps most from pirating. However there are issues with this that I have found. First i was using networkInfo to get the list of mac address but this failed in a test windows XP computer. When the wireless was off it did not return the MAC. I was not able to recreate this in VISTA or 7. Not sure if it could happen. Was not tested on a mac computer. To fix this (at least for windows). I wrote a simple bat file that gets the MAC list, then converted it to an exe which is included. This does force you to create native installers. call the exe with this var nativeProcessStartupInfo = new air.NativeProcessStartupInfo(); var file = air.File.applicationDirectory.resolvePath("findmac.exe"); nativeProcessStartupInfo.executable = file; process = new air.NativeProcess(); process.start(nativeProcessStartupInfo); process.addEventListener(air.ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData); process.addEventListener(air.ProgressEvent.STANDARD_ERROR_DATA, onErrorData); process.addEventListener(air.NativeProcessExitEvent.EXIT, onExit); process.addEventListener(air.IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError); process.addEventListener(air.IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError); put the list together in the onOutputData event using array.push and continue on the onExit event using the findmac.exe will return the same info every time (that i know of) beware thought that using the native install will break the standard application update process so you will have to write your own. My updates are processed the same way as above. This is contents of the .bat file to get the mac list #Echo off SETLOCAL SET MAC = SET Media = Connected FOR /F "Tokens=1-2 Delims=:" %%a in ('ipconfig /all^| FIND "Physical Address"') do #echo %%b ENDLOCAL using this method makes it simple to implement at try before you by method. at runtime if no activation code get try me version from server instead of full version.
Can I add some public meta data to an encrypted Access 2010 database?
My application stores its data in an Access 2010 database (accdb) file. It's password protected, which means it's encrypted w/ AES-128. I'd like to add some meta data to the file that's publically available. This way older verisons of my application can investigate the file to see if it's even worth trying to open. Otherwise, they'll just get the dreaded "Unrecognized Database Format" error, which is usually associated with file corruptions. In Windows, you can right-click on a file, click "Properties" and see attributes under the Details tab. I'd love it if I add attributes like the version of my application that last touched the file, and maybe other details. I'd like to avoid having a different file extension for each version of my app! Is it possible to add some public meta data to an encrypted Access 2010 database?
You can add custom database properties : http://support.microsoft.com/default.aspx?scid=kb;en-us;q178745 You can change the file extension of an encrypted Access database and change the properties for that extension. The extension .enc is fairly descriptive and does not seem to be widely used. The file will open normally when clicked and ask for the password. The icon will be recognizably Access and the description, "Encrypted MS Access" in this case, will appear under Type in a directory listing. With NTFS, you can add an alternate data stream (ADS): notepad.exe z:\docs\testde.enc:Extra.txt Reading the stream: more < testde.enc:extra.txt More information: http://www.think-techie.com/2010/04/alternate-data-streams.html http://www.irongeek.com/i.php?page=security/altds
This is a tough nut to crack! An application must read information about the ACCDB, but that information can't be stored in the ACCDB because you want the read without opening the ACCDB. And you can't use the suggested file system methods because this must work under Wine on Mac (I assume from another of your questions). The only solution I can see is to create a companion file (with same base name but different extension) to hold the metadata. So if your application wants to know about SomeDb.accdb, it would look for a file named SomeDb.metadata and read that instead. I suggested a kludge for your earlier question ... unfortunately this is another. :-) However, it's a simple kludge and it should work ... even on Mac.
MS Access 2007 Import Not Working?
I just switched from Access 2003 to Access 2007. In the very first "dev" copy (as I call it) pre-split, pre-front end, I need to import some data that are text files. I try to use the ribbon to do this, and after I walk through the steps I get this little pop up box that states Microsoft Access has determined this to be a potential security risk. You shouldn't accept.... Then I Click OK to accept (open the file)... and nothing happens...no import, no file. So I tried making a new table on import, creating a table in access then importing, coverting the data file to xls & web before importing, using a completely different data file. Nothing seems to change the outcome of Access not firing off some type of import event (which I think is supposed to be a wizard or something??) So does anyone have any ideas what is going on with this? I would just code the data import but I don't know how (without using the wizard to at least create the specification).
Is the folder where the database resides configured as a Trusted Location? I know VBA code won't run if it's not. I wasn't aware those types of restrictions extended to file import from the Ribbon. However, your error message sounds similar to a Trusted Location issue, so it may be worth checking. See Create, remove, or change a trusted location for your files for detailed instructions on managing Trusted Locations.
Access was formerly very fussy about extensions and would stop working if, for example, a text file did not have an expected extension. It used to be necessary to modify the registry to get around this. It seems that the problem may still exist.