i can decompile this encoded dll file? - dll

i want decompile this dll file
https://mega.nz/file/MLwjEQxB#kSNO_lked5EtlJQK8UD19AdHC8ig0rb8CFBSmUjL4J4

Related

How to low-level debug a COM DLL (Firefox plugin) method via C++ code without debug info?

Given the following:
the 32-bit DLL code file of some old Firefox plugin (i.e. a DLL containing among other a Typelib, XSD and XSL entries), without source code or debug info, originally coded in C++ and compiled with Visual Studio,
the name and parameters of an exported function/method in this DLL (a function of the Firefox plugin, accessable in JS code),
Visual Studio Community 2013 running on Windows 7,
experience in C++ development, but not with COM or Firefox,
experience with debugging Intel assembler code,
a code license which does not prohibit disassembling the DLL,
I would like to do this: Load the DLL into some C++ code, and step on CPU level into the code of the function to find out what it exactly does.
Can you give me any hint on where to start and how get this done? I guess the DLL may need some Firefox-specific initialization before I can call the function which I would like to debug. Could this be done with the Firefox SDK, without source code and debug info for the DLL? Or may I succeed in "nakedly" loading the DLL, finding the entry point of the - rather simple - function (how?) and calling it?
Thanks for any hints.
If no pdb file or source code, it is hard for you to debug the dll file, since the debugger loads debugging information from the PDB file and uses it to locate symbols or relate current execution state of a program source code. Visual Studio uses PDB files as its primary file format for debugging information during debugging. If no those files, you couldn't debug that library.
Update:
We are dynamically loading a dll to one project using LoadLibrary() function, but if you want to step into your dll file, it really require the pdb file. A simple sample is that you could create and place one pdb file in the same folder as one simple custom dll library project located. I think Visual Studio will automatically search the directory and load them, you could find the information in your Debug modules windows.
The following case is not the same issue as yours, but it also shared us that it would load the pdb file if the dll file was really called by one project/process:
Does winbase::LoadLibrary() load .pdbs?

How to pass configuration to AppDomain from Visual FoxPro application

I made COM visible .NET DLL in C# which refers an external DLL and the external DLL reads app.config from current AppDomain. However my DLL is called from Visual FoxPro 9 so it misses content of app.config from my project.
Does Foxpro have something like app.config in .NET? I just need pass configuration to the external library via AppDomain from FoxPro.
VFP doesn't have separate AppDomains like .Net. However, if you put your DLL in the same folder where your VFP executable is, then your AppDomain.CurrentDomain.BaseDirectory is the folder where VFP executable is (IOW it is the same as VFP's justpath(Application.ServerName)). ie:
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app.config");
Also App.config is just a plain xml file. You can read and process its contents as you wish from within VFP.
VPF creates .exe file. Just create .exe.config file with the same content as dll.config.

How to convert multiple cs files to a single dll file

I have exported the source code of Assembly C Sharp.dll that unity uses using reflector. it gave me various cs files. Now i want to compile them all back into a single dll file. So how do i do it and what program shall i use??
Thanks
In visual studio, create a new class library project. Add your .cs files to the project. Build.

A dll file couldn't be copied when download CAB automatically in a web page

I wrote a activeX plugin and made a cab file to package the ocx with 2 dll file, just calling then a.dll and b.dll. The ocx relys on the a.dll and a.dll relys on b.dll. The inf file is this:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
test.ocx=test.ocx
a.dll=a.dll
b.dll=b.dll
[test.ocx]
file-win32-x86=thiscab
clsid={AB1408A0-10F6-40BA-984D-074D7BDC3126}
FileVersion=3,1,0,17
DestDir=11
RegisterServer=yes
[a.dll]
file-win32-x86=thiscab
FileVersion=2,1,1,16
DestDir=11
[b.dll]
file-win32-x86=thiscab
FileVersion=2,0,0,16
DestDir=11
After the downloading done, I found the a.dll doesn't exist in C:/windows/system32 but other two files were already in it and the ocx were already registered.
a.dll was wroted by myself. b.dll is a third-party library.
I was so puzzled by this, and eager for your help.
Try removing DestDir=11, so nothing goes into system32 folder. Your dependency DLL files will be placed in the same folder as your OCX. Also, you may be missing CRT DLLs (MSVC*.DLL). I would suggest switching to link to CRT statically in your C++ project settings. Check if any of your DLLs has any unresolved dependencies on the target machine, using Dependency Walker.

Compiling & Decompiling dll files

I have a .dll file which I've decompiled with the software called "Reflector7.4.1" to get the source code. After decompiling, to my surprise, I got a folder instead of a single source code file.The folder contained a bunch of other files and subfolders with files.
I have identified the file in which I have to modify the code.But the problem is,after I have modified the only 1 file, how do I compile the whole bunch of folders and subfolders and many other files that I have not edited-into a single .dll file as they were before?
You should not recompile decompiled code, since the compilation process is not completely reversible, even for .NET binaries. There are many missing libraries you might need, mismatches in libraries, etc. I would suggest decompiling and then patching the DLL using a .NET assembly editor of some sort.
Reflexil is one you should check out.
You should also understand .NET disassembly and understand how to move back and forth from the decompiled source and the binaries, so you'll know exactly what you want to change.