我使用7zip创建SFX如下:
7z.exe a -r archive.7z *
Run Code Online (Sandbox Code Playgroud)
然后我用7zS.sfx文件(用于创建自解压安装程序),配置文件"build.config"和存档进行二进制复制.配置文件的内容如下:
;!@Install@!UTF-8!
RunProgram="setup.exe"
GUIMode="1"
Path="%tmp%\\mytemp"
;!@InstallEnd@!
Run Code Online (Sandbox Code Playgroud)
二进制复制命令如下:
copy /b 7zS.sfx + build.config + archive.7z sfxInstaller.exe
Run Code Online (Sandbox Code Playgroud)
问题是结果SFX"sfxInstaller.exe"需要管理员权限才能执行.是否可以使用不需要管理员权限的7-Zip生成自解压档案?如果是这样,我应该使用哪些参数/命令行参数?提前致谢.
我正在尝试使用C#代码中的CryptoAPI将SHA256时间戳添加到已签名的程序集中.这是我正在使用的代码:
Signer.TimestampSignedAssembly("MyAssembly.exe", "http://tsa.starfieldtech.com");
Run Code Online (Sandbox Code Playgroud)
签名者类:
public static class Signer
{
[StructLayoutAttribute(LayoutKind.Sequential)]
struct SIGNER_SUBJECT_INFO
{
public uint cbSize;
public IntPtr pdwIndex;
public uint dwSubjectChoice;
public SubjectChoiceUnion Union1;
[StructLayoutAttribute(LayoutKind.Explicit)]
internal struct SubjectChoiceUnion
{
[FieldOffsetAttribute(0)]
public IntPtr pSignerFileInfo;
[FieldOffsetAttribute(0)]
public IntPtr pSignerBlobInfo;
}
}
[StructLayoutAttribute(LayoutKind.Sequential)]
struct SIGNER_FILE_INFO
{
public uint cbSize;
public IntPtr pwszFileName;
public IntPtr hFile;
}
[DllImport("Mssign32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
private static extern int SignerTimeStampEx2(
uint dwFlags, // DWORD
IntPtr pSubjectInfo, // SIGNER_SUBJECT_INFO
string pwszHttpTimeStamp, // LPCWSTR
uint dwAlgId, …
Run Code Online (Sandbox Code Playgroud)