diff --git a/src/OpenArk/common/cache/cache.cpp b/src/OpenArk/common/cache/cache.cpp index d784254..5cdb359 100644 --- a/src/OpenArk/common/cache/cache.cpp +++ b/src/OpenArk/common/cache/cache.cpp @@ -59,11 +59,13 @@ ProcInfo CacheGetProcInfo(unsigned int pid, ProcInfo& info) } static bool is_os64 = UNONE::OsIs64(); info.path = WStrToQ(path); - std::wstring corp, desc; - UNONE::FsGetFileInfoW(path, L"CompanyName", corp); - UNONE::FsGetFileInfoW(path, L"FileDescription", desc); - info.corp = WStrToQ(corp); - info.desc = WStrToQ(desc); + if (!path.empty() && path != L"System") { + std::wstring corp, desc; + UNONE::FsGetFileInfoW(path, L"CompanyName", corp); + UNONE::FsGetFileInfoW(path, L"FileDescription", desc); + info.corp = WStrToQ(corp); + info.desc = WStrToQ(desc); + } if (info.name.isEmpty()) info.name = WStrToQ(UNONE::FsPathToNameW(path)); info.ctime = WStrToQ(ProcessCreateTime(pid)); if (is_os64 && !UNONE::PsIsX64(pid)) info.name.append(" *32"); diff --git a/src/OpenArk/common/qt-wrapper/qt-wrapper.cpp b/src/OpenArk/common/qt-wrapper/qt-wrapper.cpp index e01be44..823ef33 100644 --- a/src/OpenArk/common/qt-wrapper/qt-wrapper.cpp +++ b/src/OpenArk/common/qt-wrapper/qt-wrapper.cpp @@ -232,6 +232,7 @@ void SetDefaultTableViewStyle(QTableView* view, QStandardItemModel* model) view->horizontalHeader()->setMinimumSectionSize(100); view->verticalHeader()->setDefaultSectionSize(25); view->selectionModel()->selectedIndexes(); + view->setEditTriggers(false); } void SetDefaultTreeViewStyle(QTreeView* view, QStandardItemModel* model) @@ -324,6 +325,18 @@ void ShellRun(QString cmdline, QString param) ShellExecuteW(NULL, L"open", cmdline.toStdWString().c_str(), param.toStdWString().c_str(), NULL, SW_SHOW); } +void ShellRunCmdExe(QString exe, int show) +{ + auto cmdline = "cmd /c " + exe; + UNONE::PsCreateProcessW(cmdline.toStdWString(), show); +} + +void ShellRunCmdDir(QString dir) +{ + auto cmdline = "cmd /k cd /D" + dir; + UNONE::PsCreateProcessW(cmdline.toStdWString()); +} + QString PidFormat(DWORD pid) { if (pid == -1) return "N/A"; diff --git a/src/OpenArk/common/qt-wrapper/qt-wrapper.h b/src/OpenArk/common/qt-wrapper/qt-wrapper.h index a4f5a16..40c7ae7 100644 --- a/src/OpenArk/common/qt-wrapper/qt-wrapper.h +++ b/src/OpenArk/common/qt-wrapper/qt-wrapper.h @@ -227,5 +227,7 @@ bool JsonGetValue(const QByteArray &data, const QString &key, QJsonValue &val); // void ShellOpenUrl(QString url); void ShellRun(QString cmdline, QString param); +void ShellRunCmdExe(QString exe, int show = SW_SHOW); +void ShellRunCmdDir(QString dir); QString PidFormat(DWORD pid); QString NameFormat(QString name); diff --git a/src/OpenArk/kernel/kernel.cpp b/src/OpenArk/kernel/kernel.cpp index d0f22af..5d87855 100644 --- a/src/OpenArk/kernel/kernel.cpp +++ b/src/OpenArk/kernel/kernel.cpp @@ -328,7 +328,7 @@ void Kernel::InitHotkeyView() { 180, tr("Title") }, { 180, tr("ClassName") }, { 300, tr("Path") }, - { 120, tr("Description") } }; + { 160, tr("Description") } }; SetDefaultTreeViewStyle(view, hotkey_model_, proxy_hotkey_, colum_layout, _countof(colum_layout)); view->viewport()->installEventFilter(this); view->installEventFilter(this); diff --git a/src/OpenArk/kernel/network/network.cpp b/src/OpenArk/kernel/network/network.cpp index aafbe7c..3d729a6 100644 --- a/src/OpenArk/kernel/network/network.cpp +++ b/src/OpenArk/kernel/network/network.cpp @@ -367,7 +367,7 @@ void KernelNetwork::InitHostsView() return std::move(hosts); }; - auto ReloadHostsData = [=]() { + auto RefreshHostsData = [=]() { std::string data; auto &&hosts = GetCurrentHostsPath(); UNONE::FsReadFileDataW(hosts, data); @@ -383,7 +383,7 @@ void KernelNetwork::InitHostsView() UNONE::FsWriteFileDataW(hosts, data); }; - auto ReloadHostsList = [=]() { + auto RefreshHostsList = [=]() { auto row = ui_->hostsFileListWidget->currentRow(); ui_->hostsFileListWidget->clear(); std::vector names; @@ -402,12 +402,12 @@ void KernelNetwork::InitHostsView() }; connect(ui_->hostsFileListWidget, &QListWidget::itemSelectionChanged, [=] { - ReloadHostsData(); + RefreshHostsData(); }); - connect(ui_->hostsReloadBtn, &QPushButton::clicked, [=] { - ReloadHostsData(); - ReloadHostsList(); + connect(ui_->hostsRefreshBtn, &QPushButton::clicked, [=] { + RefreshHostsData(); + RefreshHostsList(); }); connect(ui_->hostsSaveBtn, &QPushButton::clicked, [=] { @@ -423,7 +423,7 @@ void KernelNetwork::InitHostsView() if (ok && !text.isEmpty()) { auto &&hosts = hosts_dir_ + L"\\hosts-" + text.toStdWString(); WriteHostsData(hosts); - ReloadHostsList(); + RefreshHostsList(); } }); @@ -436,14 +436,14 @@ void KernelNetwork::InitHostsView() }); if (!UNONE::FsIsExistedW(hosts_file_)) UNONE::FsWriteFileDataW(hosts_file_, "# 127.0.0.1 localhost\n# ::1 localhost"); - ReloadHostsList(); + RefreshHostsList(); ui_->hostsFileListWidget->setCurrentRow(0); ui_->hostsFileListWidget->installEventFilter(this); hosts_menu_ = new QMenu(); hosts_menu_->addAction(tr("Mark as Main"), kernel_, [=] { WriteHostsData(hosts_file_); - ReloadHostsList(); + RefreshHostsList(); ui_->hostsFileListWidget->setCurrentRow(0); }); hosts_menu_->addAction(tr("Rename"), kernel_, [=] { @@ -461,7 +461,7 @@ void KernelNetwork::InitHostsView() hosts = hosts_dir_ + L"\\hosts"; } WriteHostsData(hosts); - ReloadHostsList(); + RefreshHostsList(); } }); hosts_menu_->addAction(tr("Backup"), kernel_, [=] { @@ -480,15 +480,15 @@ void KernelNetwork::InitHostsView() } ClipboardCopyData(UNONE::StrToA(data)); }); - hosts_menu_->addAction(tr("Reload"), kernel_, [=] { - emit ui_->hostsReloadBtn->click(); + hosts_menu_->addAction(tr("Refresh"), kernel_, [=] { + emit ui_->hostsRefreshBtn->click(); }); hosts_menu_->addAction(copy_menu->menuAction()); hosts_menu_->addSeparator(); hosts_menu_->addAction(tr("Delete"), kernel_, [=] { DeleteFileW(GetCurrentHostsPath().c_str()); - emit ui_->hostsReloadBtn->click(); + emit ui_->hostsRefreshBtn->click(); }, QKeySequence::Delete); hosts_menu_->addAction(tr("Delete Non-Main"), kernel_, [=] { if (QMessageBox::warning(this, tr("Warning"), tr("Are you sure to delete all hosts file(include backups)?"), @@ -501,7 +501,7 @@ void KernelNetwork::InitHostsView() auto path = hosts_dir_ + L"\\" + QToWStr(name); DeleteFileW(path.c_str()); } - emit ui_->hostsReloadBtn->click(); + emit ui_->hostsRefreshBtn->click(); }); } @@ -516,7 +516,7 @@ void KernelNetwork::InitPortView() { 145, tr("Foreign address") }, { 100, tr("State") }, { 50, tr("PID") }, - { 350, tr("Process Path") }, + { 530, tr("Process Path") }, }; SetDefaultTreeViewStyle(view, port_model_, proxy_port_, layout, _countof(layout)); diff --git a/src/OpenArk/kernel/storage/storage.cpp b/src/OpenArk/kernel/storage/storage.cpp index 836f834..d022143 100644 --- a/src/OpenArk/kernel/storage/storage.cpp +++ b/src/OpenArk/kernel/storage/storage.cpp @@ -53,7 +53,7 @@ bool KernelStorage::eventFilter(QObject *obj, QEvent *e) if (ui_->inputPathEdit->text().isEmpty()) { QString tips(tr("Tips: \n1. You can copy file or directory and paste to here(Enter key to ShowHold).\n" "2. You need enter kernel mode to view FileHold.\n" - "3. Path is case insensitive")); + "3. Path is case insensitive.")); QToolTip::showText(mouse->globalPos(), tips); return true; } diff --git a/src/OpenArk/openark_zh.ts b/src/OpenArk/openark_zh.ts index 4433210..f1883f1 100644 --- a/src/OpenArk/openark_zh.ts +++ b/src/OpenArk/openark_zh.ts @@ -458,12 +458,12 @@ p, li { white-space: pre-wrap; } [内核模式] 连接成功... - + [KernelMode] not initialized... [内核模式] 未初始化... - + Enter KernelMode @@ -541,7 +541,8 @@ p, li { white-space: pre-wrap; } - System Notify + SystemNotify + System Notify 系统回调 @@ -560,35 +561,35 @@ p, li { white-space: pre-wrap; } 对象类型表 - + ObjectSections 内存区对象 - + Path: InputPath: 路径: - + &ShowHold ShowHold 查看占用(&S) - + Local IPV4 本机 IPV4 - + Local IPV6 本机 IPV6 - + Filter: 过滤器: @@ -598,59 +599,78 @@ p, li { white-space: pre-wrap; } <html><head/><body><p><a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes"><span style=" text-decoration: underline; color:#0000ff;">虚拟键码对照表</span></a></p></body></html> - + + Kernel Memory + 内存管理 + + + + Kernel Storage + 存储管理 + + + + Kernel Network + 网络管理 + + + IPV4 - + IPV6 - + TCP Listen TCP监听 - + TCP Connection TCP连接 - + UDP Listen UDP监听 - + Hosts Hosts文件 - + &HostsDirectory 打开Hosts目录(&H) - + &Save 保存(&S) - + &Clear 清空(&C) - + &Backup 备份(&B) - + + &Refresh + 刷新(&R) + + &Reload - 重新加载(&R) + 重新加载(&R) Memory View @@ -685,10 +705,9 @@ p, li { white-space: pre-wrap; } 内存区域 - Storage Manager Storage - 存储管理 + 存储管理 UnlockFile @@ -704,7 +723,8 @@ p, li { white-space: pre-wrap; } - Driver Manager + Kernel Driver + Driver Manager 驱动管理 @@ -714,16 +734,16 @@ p, li { white-space: pre-wrap; } - Object Manager + Kernel Object + Object Manager 对象管理 - Memory Manager - 内存管理 + 内存管理 - + MemoryReadWrite MemoryView 内存读写 @@ -733,7 +753,7 @@ p, li { white-space: pre-wrap; } 文件过滤 - + FileUnlock 文件解锁 @@ -742,30 +762,29 @@ p, li { white-space: pre-wrap; } 选择文件... - + &Kill Process KillProcess 结束进程(&K) - + &Unlock Unlock 解锁(&U) - + Unlock &All Unlock All 解锁全部(&A) - Network Manager - 网络管理 + 网络管理 - + Port 端口 @@ -789,73 +808,73 @@ p, li { white-space: pre-wrap; } 驱动列表 - - + + Name 名称 - + Value - + MajorVersion 主版本号 - + MiniorVersion 副版本号 - + ReleaseNumber 发行编号 - + BuildNumber 编译号 - + MajorServicePack 主服务包 - + MiniorServicePack 副服务包 - + R3 AddressRange R3地址空间 - + R0 AddressRange R0地址空间 - + Page Size 页面大小 - + Physical Memory 物理内存 - + CPU Count CPU核数 - + SystemRoot 系统根目录 @@ -868,8 +887,8 @@ p, li { white-space: pre-wrap; } 基址 - - + + Path 路径 @@ -878,41 +897,41 @@ p, li { white-space: pre-wrap; } 顺序 - - + + Description 描述 - + Version 版本 - + Company 公司 - - + + Refresh 刷新 - + Copy 复制 - - + + Explore File 定位到文件 - - + + Sendto Scanner 扫描文件 @@ -927,13 +946,13 @@ p, li { white-space: pre-wrap; } [内核模式] 退出内核模式成功... - + [KernelMode] Enter kernel mode needed before using the features(Hotkey/Notify/Memory...) [内核模式] 使用(热键/回调/内存)等功能时需要进入内核模式... - - + + Properties... 属性... @@ -946,26 +965,26 @@ p, li { white-space: pre-wrap; } 驱动文件 (*.sys);;所有文件 (*.*) - - + + CreateProcess - - + + CreateThread - - + + LoadImage - - + + CmpCallback @@ -1008,22 +1027,22 @@ p, li { white-space: pre-wrap; } [内核模式] 你需要启用内核模式来安装驱动... - + Callback Entry 回调入口 - + Type 类型 - + Delete Notify 删除回调 - + Disassemble Notify 反汇编回调入口 @@ -1032,37 +1051,37 @@ p, li { white-space: pre-wrap; } 内存读写 - + PID.TID 进程ID.线程ID - + Hotkey 热键 - + HotkeyObject 热键对象地址 - + HotkeyID 热键ID - + HWND 句柄 - + Title 标题 - + ClassName 类名 @@ -1071,12 +1090,12 @@ p, li { white-space: pre-wrap; } 错误 - + Delete Hotkey 删除热键 - + [-] Driver file not existed! [-] 驱动文件不存在! @@ -1084,127 +1103,127 @@ p, li { white-space: pre-wrap; } KernelDriver - + Name 名称 - + Base 基址 - + Path 路径 - + Number 顺序 - + Description 描述 - + Version 版本 - + Company 公司 - + Refresh 刷新 - + Copy 复制 - + Sendto Scanner 扫描文件 - + Explore File 定位到文件 - + Properties... 属性... - + Open File 打开文件 - + Driver Files (*.sys);;All Files (*.*) 驱动文件 (*.sys);;所有文件 (*.*) - + Write registry ok... 写入注册表成功... - + Write registry failed, open console window to view detail... 写入注册表失败,打开控制台窗口查看详情... - + Clean registry ok... 清理注册表成功... - + Clean registry failed, open console window to view detail... 删除注册表失败,打开控制台窗口查看详情... - + Sign ok... 签名成功... - + Sign failed, open console window to view detail... 签名失败,打开控制台窗口查看详情... - + Install ok... 安装成功... - + Install failed, open console window to view detail... 安装失败,打开控制台窗口查看详情... - + Uninstall ok... 卸载成功... - + Uninstall failed, open console window to view detail... 卸载失败,打开控制台窗口查看详情... - + [-] Driver file not existed! [-] 驱动文件不存在! @@ -1315,8 +1334,10 @@ p, li { white-space: pre-wrap; } - Reload - 重新加载 + + Refresh + Reload + 刷新 @@ -1413,109 +1434,104 @@ p, li { white-space: pre-wrap; } Process Path 进程路径 - - - Refresh - 刷新 - KernelObject - + TypeObject 类型对象 - + TypeIndex 类型索引 - + TypeName 类型名称 - + TotalObjectsNum 关联对象数 - + TotalHandlesNum 关联句柄数 - - + + Refresh 刷新 - - + + Copy 复制 - + SectionDirectory 内存区目录 - + SectionName 内存区名 - + SectionSize 内存区大小 - + SessionID 会话ID - + SessionName 会话名 - - + + Error 错误 - + Dump to File 转存到文件 - + Save to 生成程序 - + DumpMemory(*) 转储文件 - + Dump memory to file ok 转存到文件成功 - + Dump memory to file error 转存到文件失败 - + Memory Edit 内存编辑 @@ -1527,12 +1543,12 @@ p, li { white-space: pre-wrap; } 文件对象 - + FilePath 文件路径 - + PID 进程ID @@ -1541,73 +1557,73 @@ p, li { white-space: pre-wrap; } Tips: 1. You can copy file or directory and paste to here(Enter key to ShowHold). 2. You need enter kernel mode to view FileHold. -3. Path is case insensitive +3. Path is case insensitive. Tips: 1. You can copy file or directory and paste to here(Enter key to ShowHold). 2. You need enter kernel mode to view FileHold. -. 3. Path is case insensitive +3. Path is case insensitive 提示: 1、你可以直接复制文件或文件夹,然后粘贴到这里(回车查看占用)。 2、你需要进入内核模式查看文件占用。 3、路径不区分大小写。 - + ProcessName 进程名 - + ProcessPath 进程路径 - + Type 类型 - + FileObject/DllBase 文件对象/模块基址 - + FileHandle 文件句柄 - + Copy 复制 - + Unlock 解锁 - + Unlock All 解锁全部 - + Kill Process 结束进程 - + Scan Selected 扫描该项 - + Explore Selected 定位到该项 - + Properties Selected... 属性... @@ -1640,7 +1656,7 @@ p, li { white-space: pre-wrap; } 全部展开 - + Refresh 刷新 @@ -1701,37 +1717,37 @@ p, li { white-space: pre-wrap; } 区域: - + Unknown... 未知... - + ReadMemory 读取内存 - + DumpToFile 转存到文件 - + PID: 进程ID: - + 4 - + ProcessName: 进程名: - + SYSTEM @@ -2699,247 +2715,443 @@ p, li { white-space: pre-wrap; } - WinReverse - Windows平台 + WinCommon + WinReverse + Win平台 Common 常用 - - Tools - - - - + Procexp - + Procmon - + Winobj - + Dbgview - + HxD - + PCHunter - + APIMonitor32 - + Notepad++ - + 010Editor - + WinSpy - + Windbg *32 - + IDA *32 - + x64dbg *32 - + OllyICE - + ExeinfoPe - + ResHacker - + Winhex - + Windbg *64 - + x64dbg *64 - + IDA *64 - - OD 52pj + + OD 52PJ - - HCD + + Fiddler2 - - Cheat Engine + + Wireshark1 + + + + + Wireshark3 + + + + + Fiddler4 + + + + + Ghidra - - Fiddler 2 + + Charles - + + Window + + + + + DiskGenius + + + + + cURL + + + + + tcpdump + + + + + WKE + + + + + PCHunter+ + + + + + Nmap + + + + + WinRAR + + + + + 7-Zip + + + + + Chrome85 + ChromeSetup + + + + + Chrome49 + Chrome + + + + + Firefox + + + + + Keygener + + + + + PYGTools + + + + + CPU-Z + + + + + AIDA64 + + + + + PoolMonX + + + + + WinDevKits + 开发依赖 + + + + vcredist_2005_x86 + + + + + TortoiseGit + + + + + TortoiseSVN + + + + + Git + + + + + vcredist_2008_x86 + + + + + vcredist_2010_x86 + + + + + vcredist_2012_x86 + + + + + vcredist_2013_x86 + + + + + vcredist_2015_x86 + + + + + vcredist_15~19_x86 + + + + + vcredist_15~19_x64 + + + + + vcredist_2015_x64 + + + + + vcredist_2010_x64 + + + + + vcredist_2012_x64 + + + + + vcredist_2008_x64 + + + + + vcredist_2013_x64 + + + + + vcredist_2005_x64 + + + + + JDK + + + + + Python + + + + + Golang + + + + + HCD + + + + + Cheat Engine + + + + Everything - + Spy++ *32 Spy++ - + Teamviewer - + AnyDesk - + Sunlogin 向日葵 - + PEID - + Sysinternals - + CFF Explorer - + NirSoft - + Radare - + APIMonitor64 - + OllyDBG - + Spy++ *64 - - Wireshark v1 - - - - - Wireshark v3 - - - - - Fiddler 4 - - - - + ToolsFolder 工具目录 - Placeholder - 空白占位 + 空白占位 - It's a placeholder used for future. - 这是一个占位,用于后续功能更新。 + 这是一个占位,用于后续功能更新。 - - + + Error 错误 - + Download pending, wait for a while... 下载进行中,等待片刻... - + Download failed, err:%1 下载失败,错误:%1 @@ -3456,7 +3668,7 @@ p, li { white-space: pre-wrap; } - + Cleaner 垃圾清理 @@ -3469,7 +3681,7 @@ p, li { white-space: pre-wrap; } 文件大小: - + [STATUS] not started... [状态] 未开始... @@ -3479,22 +3691,22 @@ p, li { white-space: pre-wrap; } 自定义清理 - + CustomFolder 自定义目录 - + Builtins 内置目录 - + &Scan 扫描(&S) - + &Clean 清理(&C) @@ -3509,150 +3721,151 @@ p, li { white-space: pre-wrap; } 常用 - + Command 命令提示符 - + PowerShell - + LinuxShell - + EnvVariable 环境变量 - + KillExplorer 结束资源管理器 - + + ResetExplorer 重启资源管理器 - + Diskmgr 磁盘管理 - + DateTime 时间日期 - + &Setting Setting 设置(&T) - + DeskIcon 桌面图标 - + OS Version 系统版本 - + Devices 设备管理 - + Tasks 计划任务 - + ResourceMon 资源监视 - + PerfConfig 性能设置 - + Powers 电源设置 - + UserGroups 用户管理 - + Secur Policy 安全策略 - + Proxy 代理设置 - + NetConnections 网络连接 - + Regedit 注册表 - + Services 服务管理 - + Programs 程序管理 - + Taskmgr 任务管理器 - + ComputerName 计算机名 - + Calculator 计算器 - FastPoweroff - FastPoweroff - 快速关机 + FastReboot + FastPoweroff + 快速重启 - FastReboot - FastReboot - 快速重启 + FastPoweroff + FastReboot + 快速关机 - + Configuration 配置 @@ -3673,12 +3886,13 @@ p, li { white-space: pre-wrap; } 系统版本 - + SystemInfo 系统信息 - + + Wallpaper 墙纸 @@ -3691,12 +3905,12 @@ p, li { white-space: pre-wrap; } 计划任务 - + Performance && Security 性能和安全 - + Performance 性能监视 @@ -3705,7 +3919,7 @@ p, li { white-space: pre-wrap; } 资源监视 - + UAC Settings UAC设置 @@ -3718,7 +3932,7 @@ p, li { white-space: pre-wrap; } 电源设置 - + Group Policy 组策略 @@ -3727,12 +3941,13 @@ p, li { white-space: pre-wrap; } 用户和组 - + Credential 凭据管理 - + + Certificate 证书管理 @@ -3741,17 +3956,17 @@ p, li { white-space: pre-wrap; } 安全策略 - + Event Viewer 事件查看 - + Network 网络 - + Firewall 防火墙 @@ -3764,27 +3979,28 @@ p, li { white-space: pre-wrap; } 网络连接 - + Hosts Hosts文件 - + IP v4 - + IP v6 - + Route 路由表 - + + Shared Folders 共享文件夹 @@ -3829,18 +4045,18 @@ p, li { white-space: pre-wrap; } [状态] 清理完成... - - + + Warning 警告 - + Are you sure to reboot? 确定要重启电脑吗? - + Are you sure to poweroff? 确定要关机吗? diff --git a/src/OpenArk/res/devkits/git.ico b/src/OpenArk/res/devkits/git.ico new file mode 100644 index 0000000..85c8400 Binary files /dev/null and b/src/OpenArk/res/devkits/git.ico differ diff --git a/src/OpenArk/res/devkits/golang.ico b/src/OpenArk/res/devkits/golang.ico new file mode 100644 index 0000000..91577a2 Binary files /dev/null and b/src/OpenArk/res/devkits/golang.ico differ diff --git a/src/OpenArk/res/devkits/jdk.ico b/src/OpenArk/res/devkits/jdk.ico new file mode 100644 index 0000000..087efbd Binary files /dev/null and b/src/OpenArk/res/devkits/jdk.ico differ diff --git a/src/OpenArk/res/devkits/python.ico b/src/OpenArk/res/devkits/python.ico new file mode 100644 index 0000000..0781c0e Binary files /dev/null and b/src/OpenArk/res/devkits/python.ico differ diff --git a/src/OpenArk/res/devkits/tortoisegit.ico b/src/OpenArk/res/devkits/tortoisegit.ico new file mode 100644 index 0000000..d0856bb Binary files /dev/null and b/src/OpenArk/res/devkits/tortoisegit.ico differ diff --git a/src/OpenArk/res/devkits/tortoisesvn.ico b/src/OpenArk/res/devkits/tortoisesvn.ico new file mode 100644 index 0000000..d3beb3a Binary files /dev/null and b/src/OpenArk/res/devkits/tortoisesvn.ico differ diff --git a/src/OpenArk/res/devkits/vcredist.ico b/src/OpenArk/res/devkits/vcredist.ico new file mode 100644 index 0000000..f128826 Binary files /dev/null and b/src/OpenArk/res/devkits/vcredist.ico differ diff --git a/src/OpenArk/res/lang/openark_zh.qm b/src/OpenArk/res/lang/openark_zh.qm index 324eeef..69b7b4c 100644 Binary files a/src/OpenArk/res/lang/openark_zh.qm and b/src/OpenArk/res/lang/openark_zh.qm differ diff --git a/src/OpenArk/res/openark.qrc b/src/OpenArk/res/openark.qrc index 9856eb7..a844560 100644 --- a/src/OpenArk/res/openark.qrc +++ b/src/OpenArk/res/openark.qrc @@ -1,108 +1,132 @@ - - exit.ico - ontop.ico - OpenArk.ico - save.ico - settings.ico - open.ico - refresh.ico - gitub.ico - console.ico - BundlerShell.exe - handle.ico - module.ico - memory.ico - nasm/nasm.exe - nasm/ndisasm.exe - sign/Config.xml - sign/CSignTool.exe - sign/CSignTool.pfx - driver/OpenArkDrv32.sys - driver/OpenArkDrv64.sys - lang/openark_zh.qm - systools/recyclebin.png - systools/cmd.ico - systools/powershell.ico - systools/wsl.ico - systools/calc.ico - systools/firewall.ico - systools/performance.ico - systools/regedit.ico - systools/tasksch.ico - systools/credential.ico - systools/datetime.ico - systools/deskicon.ico - systools/powercfg.ico - systools/program.ico - systools/services.ico - systools/share.ico - systools/taskmgr.ico - systools/uac.ico - systools/users.ico - systools/systeminfo.ico - systools/wallpaper.ico - systools/devmgr.ico - systools/poweroff.ico - systools/reboot.ico - systools/netconnections.ico - systools/resmon.ico - systools/certmgr.ico - systools/eventlog.ico - systools/gpedit.ico - systools/secpolicy.ico - systools/proxy.ico - systools/version.ico - systools/disks.ico - systools/hosts.ico - systools/env.ico - systools/ipv4.ico - systools/ipv6.ico - systools/pcname.ico - systools/route.ico - systools/perfsettings.ico - revtools/dbgview.ico - revtools/hxd.ico - revtools/pchunter.ico - revtools/procexp.ico - revtools/procmon.ico - revtools/winobj.ico - revtools/winspy.ico - help.ico - update.ico - revtools/apimon32.ico - revtools/apimon64.ico - revtools/nirsoft.ico - revtools/sysinternals.ico - revtools/ida32.ico - revtools/ida64.ico - revtools/od52pj.ico - revtools/ollydbg.ico - revtools/ollyice.ico - revtools/windbg.ico - revtools/x64dbg.ico - systools/resetexplorer.ico - systools/killexplorer.ico - revtools/cffexplorer.ico - revtools/cheatengine.ico - revtools/default.ico - revtools/exeinfope.ico - revtools/hcd.ico - revtools/peid.ico - revtools/reshacker.ico - revtools/anydesk.ico - revtools/editor010.ico - revtools/fiddler.ico - revtools/notepadxx.ico - revtools/spyxx.ico - revtools/sunlogin.ico - revtools/teamviewer.ico - revtools/winhex.ico - revtools/wireshark.ico - revtools/everything.ico - main/run.ico - - - ui/memory-rw.ui - + + revtools/cpuz.ico + revtools/7z.ico + revtools/aida64.ico + revtools/anydesk.ico + revtools/apimon32.ico + revtools/apimon64.ico + revtools/cffexplorer.ico + revtools/charles.ico + revtools/cheatengine.ico + revtools/chrome.ico + revtools/chromesetup.ico + revtools/curl.ico + revtools/dbgview.ico + revtools/default.ico + revtools/diskgenius.ico + revtools/editor010.ico + revtools/everything.ico + revtools/exeinfope.ico + revtools/fiddler.ico + revtools/firefox.ico + revtools/ghidra.ico + revtools/hcd.ico + revtools/hxd.ico + revtools/ida32.ico + revtools/ida64.ico + revtools/keygener.ico + revtools/nirsoft.ico + revtools/nmap.ico + revtools/notepadxx.ico + revtools/od52pj.ico + revtools/ollydbg.ico + revtools/ollyice.ico + revtools/pchunter.ico + revtools/peid.ico + revtools/poolmonx.ico + revtools/procexp.ico + revtools/procmon.ico + revtools/pygtools.ico + revtools/reshacker.ico + revtools/spyxx.ico + revtools/sunlogin.ico + revtools/sysinternals.ico + revtools/teamviewer.ico + revtools/windbg.ico + revtools/window.ico + revtools/winhex.ico + revtools/winobj.ico + revtools/winrar.ico + revtools/winspy.ico + revtools/wireshark.ico + revtools/wke.ico + revtools/x64dbg.ico + devkits/git.ico + devkits/golang.ico + devkits/jdk.ico + devkits/python.ico + devkits/tortoisegit.ico + devkits/tortoisesvn.ico + devkits/vcredist.ico + exit.ico + ontop.ico + OpenArk.ico + save.ico + settings.ico + open.ico + refresh.ico + gitub.ico + console.ico + BundlerShell.exe + handle.ico + module.ico + memory.ico + nasm/nasm.exe + nasm/ndisasm.exe + sign/Config.xml + sign/CSignTool.exe + sign/CSignTool.pfx + driver/OpenArkDrv32.sys + driver/OpenArkDrv64.sys + lang/openark_zh.qm + systools/recyclebin.png + systools/cmd.ico + systools/powershell.ico + systools/wsl.ico + systools/calc.ico + systools/firewall.ico + systools/performance.ico + systools/regedit.ico + systools/tasksch.ico + systools/credential.ico + systools/datetime.ico + systools/deskicon.ico + systools/powercfg.ico + systools/program.ico + systools/services.ico + systools/share.ico + systools/taskmgr.ico + systools/uac.ico + systools/users.ico + systools/systeminfo.ico + systools/wallpaper.ico + systools/devmgr.ico + systools/poweroff.ico + systools/reboot.ico + systools/netconnections.ico + systools/resmon.ico + systools/certmgr.ico + systools/eventlog.ico + systools/gpedit.ico + systools/secpolicy.ico + systools/proxy.ico + systools/version.ico + systools/disks.ico + systools/hosts.ico + systools/env.ico + systools/ipv4.ico + systools/ipv6.ico + systools/pcname.ico + systools/route.ico + systools/perfsettings.ico + help.ico + update.ico + systools/resetexplorer.ico + systools/killexplorer.ico + main/run.ico + + + ui/memory-rw.ui + diff --git a/src/OpenArk/res/revtools/7z.ico b/src/OpenArk/res/revtools/7z.ico new file mode 100644 index 0000000..58eb794 Binary files /dev/null and b/src/OpenArk/res/revtools/7z.ico differ diff --git a/src/OpenArk/res/revtools/aida64.ico b/src/OpenArk/res/revtools/aida64.ico new file mode 100644 index 0000000..31eed98 Binary files /dev/null and b/src/OpenArk/res/revtools/aida64.ico differ diff --git a/src/OpenArk/res/revtools/charles.ico b/src/OpenArk/res/revtools/charles.ico new file mode 100644 index 0000000..4cd4c11 Binary files /dev/null and b/src/OpenArk/res/revtools/charles.ico differ diff --git a/src/OpenArk/res/revtools/chrome.ico b/src/OpenArk/res/revtools/chrome.ico new file mode 100644 index 0000000..46a02cc Binary files /dev/null and b/src/OpenArk/res/revtools/chrome.ico differ diff --git a/src/OpenArk/res/revtools/chromesetup.ico b/src/OpenArk/res/revtools/chromesetup.ico new file mode 100644 index 0000000..888e199 Binary files /dev/null and b/src/OpenArk/res/revtools/chromesetup.ico differ diff --git a/src/OpenArk/res/revtools/cpuz.ico b/src/OpenArk/res/revtools/cpuz.ico new file mode 100644 index 0000000..9655232 Binary files /dev/null and b/src/OpenArk/res/revtools/cpuz.ico differ diff --git a/src/OpenArk/res/revtools/curl.ico b/src/OpenArk/res/revtools/curl.ico new file mode 100644 index 0000000..6a7f724 Binary files /dev/null and b/src/OpenArk/res/revtools/curl.ico differ diff --git a/src/OpenArk/res/revtools/diskgenius.ico b/src/OpenArk/res/revtools/diskgenius.ico new file mode 100644 index 0000000..c3cf5bd Binary files /dev/null and b/src/OpenArk/res/revtools/diskgenius.ico differ diff --git a/src/OpenArk/res/revtools/firefox.ico b/src/OpenArk/res/revtools/firefox.ico new file mode 100644 index 0000000..cb1ae8b Binary files /dev/null and b/src/OpenArk/res/revtools/firefox.ico differ diff --git a/src/OpenArk/res/revtools/ghidra.ico b/src/OpenArk/res/revtools/ghidra.ico new file mode 100644 index 0000000..40a459f Binary files /dev/null and b/src/OpenArk/res/revtools/ghidra.ico differ diff --git a/src/OpenArk/res/revtools/keygener.ico b/src/OpenArk/res/revtools/keygener.ico new file mode 100644 index 0000000..656c050 Binary files /dev/null and b/src/OpenArk/res/revtools/keygener.ico differ diff --git a/src/OpenArk/res/revtools/nmap.ico b/src/OpenArk/res/revtools/nmap.ico new file mode 100644 index 0000000..9460e90 Binary files /dev/null and b/src/OpenArk/res/revtools/nmap.ico differ diff --git a/src/OpenArk/res/revtools/poolmonx.ico b/src/OpenArk/res/revtools/poolmonx.ico new file mode 100644 index 0000000..d5796c9 Binary files /dev/null and b/src/OpenArk/res/revtools/poolmonx.ico differ diff --git a/src/OpenArk/res/revtools/pygtools.ico b/src/OpenArk/res/revtools/pygtools.ico new file mode 100644 index 0000000..71cab4b Binary files /dev/null and b/src/OpenArk/res/revtools/pygtools.ico differ diff --git a/src/OpenArk/res/revtools/window.ico b/src/OpenArk/res/revtools/window.ico new file mode 100644 index 0000000..8450eac Binary files /dev/null and b/src/OpenArk/res/revtools/window.ico differ diff --git a/src/OpenArk/res/revtools/winrar.ico b/src/OpenArk/res/revtools/winrar.ico new file mode 100644 index 0000000..47dcbb6 Binary files /dev/null and b/src/OpenArk/res/revtools/winrar.ico differ diff --git a/src/OpenArk/res/revtools/wke.ico b/src/OpenArk/res/revtools/wke.ico new file mode 100644 index 0000000..8b0fdd0 Binary files /dev/null and b/src/OpenArk/res/revtools/wke.ico differ diff --git a/src/OpenArk/reverse/reverse.cpp b/src/OpenArk/reverse/reverse.cpp index 0783221..57a38cc 100644 --- a/src/OpenArk/reverse/reverse.cpp +++ b/src/OpenArk/reverse/reverse.cpp @@ -21,16 +21,13 @@ using namespace Plugin::Compressor; enum { RUN_EXE, + RUN_EXE_BY_CMD, RUN_DIR, - RUN_CMD_DIR + RUN_CMD_DIR, + RUN_OPEN_URL, }; -struct { - int type; - QString name; - QString exec; - QString uri; -} WinReverseTools[] = { +WINTOOL_ITEM WinAllTools[] = { { RUN_EXE, "procexp", "procexp/procexp.exe", "procexp.zip" }, { RUN_EXE, "procmon", "Procmon/Procmon.exe", "Procmon.zip" }, { RUN_EXE, "pchunter32", "PCHunter/PCHunter32.exe", "PCHunter32.zip" }, @@ -77,6 +74,54 @@ struct { { RUN_EXE, "teamviewer", "Teamviewer/Teamviewer.exe", "Teamviewer.zip" }, { RUN_EXE, "anydesk", "AnyDesk/AnyDesk.exe", "AnyDesk.zip" }, { RUN_EXE, "sunlogin", "Sunlogin/SunloginClient_10.3.0.27372.exe", "Sunlogin.zip" }, + + //2020.09.02 add + { RUN_EXE, "pchunternew32", "PCHunterNew/PCHunter32.exe", "PCHunterNew32.zip" }, + { RUN_EXE, "pchunternew64", "PCHunterNew/PCHunter64.exe", "PCHunterNew64.zip" }, + { RUN_EXE, "wke32", "WKE32.exe", "WKE32.exe" }, + { RUN_EXE, "wke64", "WKE64.exe", "WKE64.exe" }, + { RUN_EXE, "ghidra", "Ghidra/ghidraRun.bat", "Ghidra.zip" }, + { RUN_EXE, "keygener", "Keygener.exe", "Keygener.exe" }, + { RUN_EXE, "pygtools", "PYGTools/PYG_TOOLS_VER5.exe", "PYGTools.zip" }, + { RUN_EXE, "poolmonx", "PoolMonX/PoolMonX.exe", "PoolMonX.zip" }, + { RUN_EXE_BY_CMD, "diskgenius", "DiskGenius/DiskGenius.exe", "DiskGenius.zip" }, //cannot shell open diskgenius directly, WTF + { RUN_EXE, "window", "Window.exe", "Window.exe" }, + { RUN_CMD_DIR, "curl", "network/curl/", "network/curl.zip" }, + { RUN_EXE, "nmap", "network/nmap-setup.exe", "network/nmap-setup.exe" }, + { RUN_EXE, "charles", "charles-win64.msi", "charles-win64.msi" }, + { RUN_CMD_DIR, "tcpdump", "network/tcpdump/", "network/tcpdump.zip" }, + { RUN_EXE, "x7z", "compressor/7z.exe", "compressor/7z.exe" }, + { RUN_EXE, "winrar", "compressor/winrar.exe", "compressor/winrar.exe" }, + { RUN_EXE, "chrome49", "browser/ChromeStandalone49.exe", "browser/ChromeStandalone49.exe" }, + { RUN_EXE, "chrome85", "browser/ChromeStandalone85.exe", "browser/ChromeStandalone85.exe" }, + { RUN_EXE, "firefox", "browser/FirefoxSetup.exe", "browser/FirefoxSetup.exe" }, + { RUN_EXE, "cpuz", "cpuz/cpuz_x32.exe", "cpuz.zip" }, + { RUN_EXE, "aida64", "aida64/aida64.exe", "aida64.zip" }, + + //WinDevKits + { RUN_OPEN_URL, "jdk", "https://mirrors.huaweicloud.com/java/jdk/", "" }, + { RUN_OPEN_URL, "python", "https://www.python.org/downloads/", "" }, + { RUN_OPEN_URL, "golang", "https://studygolang.com/dl", "" }, + { RUN_EXE, "git32", "dev/Git-32bit.exe", "dev/Git-32bit.exe" }, + { RUN_EXE, "torgit32", "dev/TortoiseGit-32bit.msi", "dev/TortoiseGit-32bit.msi" }, + { RUN_EXE, "torsvn32", "dev/TortoiseSVN-32bit.msi", "dev/TortoiseSVN-32bit.msi" }, + { RUN_EXE, "git64", "dev/Git-64bit.exe", "dev/Git-64bit.exe" }, + { RUN_EXE, "torgit64", "dev/TortoiseGit-64bit.msi", "dev/TortoiseGit-64bit.msi" }, + { RUN_EXE, "torsvn64", "dev/TortoiseSVN-64bit.msi", "dev/TortoiseSVN-64bit.msi" }, + { RUN_EXE, "vc2005x64", "dev/vcredist_2005_x64", "" }, + { RUN_EXE, "vc2005x86", "dev/vcredist/vcredist_2005_x86.exe", "dev/vcredist/vcredist_2005_x86.exe" }, + { RUN_EXE, "vc2008x64", "dev/vcredist/vcredist_2008_x64.exe", "dev/vcredist/vcredist_2008_x64.exe" }, + { RUN_EXE, "vc2008x86", "dev/vcredist/vcredist_2008_x86.exe", "dev/vcredist/vcredist_2008_x86.exe" }, + { RUN_EXE, "vc2010x64", "dev/vcredist/vcredist_2010_x64.exe", "dev/vcredist/vcredist_2010_x64.exe" }, + { RUN_EXE, "vc2010x86", "dev/vcredist/vcredist_2010_x86.exe", "dev/vcredist/vcredist_2010_x86.exe" }, + { RUN_EXE, "vc2012x64", "dev/vcredist/vcredist_2012_x64.exe", "dev/vcredist/vcredist_2012_x64.exe" }, + { RUN_EXE, "vc2012x86", "dev/vcredist/vcredist_2012_x86.exe", "dev/vcredist/vcredist_2012_x86.exe" }, + { RUN_EXE, "vc2013x64", "dev/vcredist/vcredist_2013_x64.exe", "dev/vcredist/vcredist_2013_x64.exe" }, + { RUN_EXE, "vc2013x86", "dev/vcredist/vcredist_2013_x86.exe", "dev/vcredist/vcredist_2013_x86.exe" }, + { RUN_EXE, "vc2015x64", "dev/vcredist/vcredist_2015_x64.exe", "dev/vcredist/vcredist_2015_x64.exe" }, + { RUN_EXE, "vc2015x86", "dev/vcredist/vcredist_2015_x86.exe", "dev/vcredist/vcredist_2015_x86.exe" }, + { RUN_EXE, "vc1519x64", "dev/vcredist/vcredist_2015~2019_x64.exe", "dev/vcredist/vcredist_2015~2019_x64.exe" }, + { RUN_EXE, "vc1519x86", "dev/vcredist/vcredist_2015~2019_x86.exe", "dev/vcredist/vcredist_2015~2019_x86.exe" }, }; Reverse::Reverse(QWidget *parent, int tabid) : @@ -87,6 +132,7 @@ Reverse::Reverse(QWidget *parent, int tabid) : ui.progressBar->show(); InitWinReverseToolsView(); + InitWinDriverKitsView(); CommonMainTabObject::Init(ui.tabWidget, tabid); } @@ -103,42 +149,49 @@ void Reverse::onTabChanged(int index) void Reverse::onExecute() { QString name; - + static auto is64 = UNONE::OsIs64(); auto sender = QObject::sender(); name = sender->objectName().replace("Btn", ""); + if (sender == ui.pchunterBtn) name = is64 ? "pchunter64" : "pchunter32"; + if (sender == ui.pchunternewBtn) name = is64 ? "pchunternew64" : "pchunternew32"; + if (sender == ui.wkeBtn) name = is64 ? "wke64" : "wke32"; + if (sender == ui.gitBtn) name = is64 ? "git64" : "git32"; + if (sender == ui.torgitBtn) name = is64 ? "torgit64" : "torgit32"; + if (sender == ui.torsvnBtn) name = is64 ? "torsvn64" : "torsvn32"; - if (sender == ui.pchunterBtn) { - name = UNONE::OsIs64() ? "pchunter64" : "pchunter32"; + WINTOOL_ITEM wintool; + for (int i = 0; i < _countof(WinAllTools); i++) { + if (WinAllTools[i].name == name) { + wintool = WinAllTools[i]; + break; + } } + DownloadAndExecuteFile(wintool); +} + +void Reverse::DownloadAndExecuteFile(WINTOOL_ITEM wintool) +{ int type; QString uri, exec; - for (int i = 0; i < _countof(WinReverseTools); i++) { - if (WinReverseTools[i].name == name) { - uri = WinReverseTools[i].uri; - exec = WinReverseTools[i].exec; - type = WinReverseTools[i].type; - break; - } + + uri = wintool.uri; + exec = wintool.exec; + type = wintool.type; + + if (type == RUN_OPEN_URL) { + ShellOpenUrl(exec); + return; } + auto &&filebase = WStrToQ(AppConfigDir() + L"/files/"); if (!UNONE::FsIsExistedW(filebase.toStdWString())) { UNONE::FsCreateDirW(filebase.toStdWString()); } - auto &&file = filebase + uri; + auto &&path = filebase + uri; auto &&url = AppFsUrl() + "/" + uri; exec = filebase + exec; - DownloadAndExecuteFile(type, file, exec, url); -} - -void ShellRunCmdDir(QString dir) -{ - auto cmdline = "cmd /k cd /D" + dir; - UNONE::PsCreateProcessW(cmdline.toStdWString()); -} -void Reverse::DownloadAndExecuteFile(int type, QString path, QString exe, QString url) -{ auto Run = [&](int type, QString exe)->bool { if (UNONE::FsIsExistedW(QToWStr(exe))) { if (type == RUN_EXE) @@ -147,6 +200,8 @@ void Reverse::DownloadAndExecuteFile(int type, QString path, QString exe, QStrin ShellRunCmdDir(exe); else if (type == RUN_DIR) ExploreFile(exe); + else if (type == RUN_EXE_BY_CMD) + ShellRunCmdExe(exe, SW_HIDE); return true; } return false; @@ -154,7 +209,7 @@ void Reverse::DownloadAndExecuteFile(int type, QString path, QString exe, QStrin static bool pending = false; - if (Run(type, exe)) + if (Run(type, exec)) return; if (pending) { @@ -163,6 +218,7 @@ void Reverse::DownloadAndExecuteFile(int type, QString path, QString exe, QStrin } pending = true; + UNONE::FsCreateDirW(UNONE::FsPathToDirW(QToWStr(path))); file = new QFile(path); file->open(QIODevice::WriteOnly); @@ -175,7 +231,7 @@ void Reverse::DownloadAndExecuteFile(int type, QString path, QString exe, QStrin reply = accessmgr->get(request); connect((QObject *)reply, SIGNAL(readyRead()), this, SLOT(readContent())); - connect(accessmgr, &QNetworkAccessManager::finished, [&, Run, type, path, exe](QNetworkReply*) { + connect(accessmgr, &QNetworkAccessManager::finished, [&, Run, type, path, exec](QNetworkReply*) { if (reply->error() != QNetworkReply::NoError) { QMessageBox::critical(NULL, tr("Error"), tr("Download failed, err:%1").arg(reply->error())); ui.progressBar->setValue(0); @@ -189,16 +245,18 @@ void Reverse::DownloadAndExecuteFile(int type, QString path, QString exe, QStrin file->flush(); file->close(); - //Unpack + auto filepath = path.toStdString(); - auto dir = UNONE::FsPathToDirA(filepath); - ZipUtils::UnpackToDir(filepath, ZipUtils::UNPACK_CURRENT, dir); - - //Run - Run(type, exe); + if (UNONE::FsPathToExtensionA(filepath) == ".zip") { + //Unpack + auto dir = UNONE::FsPathToDirA(filepath); + ZipUtils::UnpackToDir(filepath, ZipUtils::UNPACK_CURRENT, dir); + //Clean + DeleteFileA(filepath.c_str()); + } - //Clean - DeleteFileA(filepath.c_str()); + //Run + Run(type, exec); pending = false; }); @@ -218,7 +276,7 @@ void Reverse::onProgress(qint64 bytesSent, qint64 bytesTotal) void Reverse::InitWinReverseToolsView() { - QList buttons = ui.groupBox->findChildren(); + QList buttons = ui.commonBox->findChildren(); for (auto &btn : buttons) { connect(btn, SIGNAL(clicked()), this, SLOT(onExecute())); } @@ -228,3 +286,11 @@ void Reverse::InitWinReverseToolsView() ShellRun(WStrToQ(folder), ""); }); } + +void Reverse::InitWinDriverKitsView() +{ + QList buttons = ui.devkitsBox->findChildren(); + for (auto &btn : buttons) { + connect(btn, SIGNAL(clicked()), this, SLOT(onExecute())); + } +} diff --git a/src/OpenArk/reverse/reverse.h b/src/OpenArk/reverse/reverse.h index 6cbf14e..60be9dd 100644 --- a/src/OpenArk/reverse/reverse.h +++ b/src/OpenArk/reverse/reverse.h @@ -32,6 +32,13 @@ class OpenArk; class Ui::Reverse; +typedef struct _WINTOOL_ITEM { + int type; + QString name; + QString exec; + QString uri; +} WINTOOL_ITEM; + class Reverse : public CommonMainTabObject { Q_OBJECT public: @@ -45,8 +52,9 @@ private slots: void onProgress(qint64 bytesSent, qint64 bytesTotal); private: - void DownloadAndExecuteFile(int type, QString path, QString exe, QString url); + void DownloadAndExecuteFile(WINTOOL_ITEM wintool); void InitWinReverseToolsView(); + void InitWinDriverKitsView(); private: Ui::Reverse ui; diff --git a/src/OpenArk/ui/kernel.ui b/src/OpenArk/ui/kernel.ui index 9684b42..73d4787 100644 --- a/src/OpenArk/ui/kernel.ui +++ b/src/OpenArk/ui/kernel.ui @@ -38,7 +38,7 @@ QTabWidget::West - 4 + 7 @@ -70,7 +70,7 @@ - Driver Manager + Kernel Driver @@ -487,7 +487,7 @@ - System Notify + SystemNotify @@ -596,7 +596,7 @@ - Object Manager + Kernel Object @@ -686,7 +686,7 @@ - Memory Manager + Kernel Memory @@ -746,7 +746,7 @@ - Storage Manager + Kernel Storage @@ -888,7 +888,7 @@ - Network Manager + Kernel Network @@ -1102,9 +1102,9 @@ - + - &Reload + &Refresh diff --git a/src/OpenArk/ui/reverse.ui b/src/OpenArk/ui/reverse.ui index 1f1df13..5073a77 100644 --- a/src/OpenArk/ui/reverse.ui +++ b/src/OpenArk/ui/reverse.ui @@ -6,8 +6,8 @@ 0 0 - 1024 - 602 + 787 + 486 @@ -26,17 +26,29 @@ QTabWidget::West - 1 + 0 - WinReverse + WinCommon + + 0 + + + 0 + + + 0 + + + 0 + - + 0 @@ -107,7 +119,7 @@ 10 - 190 + 100 101 23 @@ -141,7 +153,7 @@ 10 - 100 + 250 101 23 @@ -158,7 +170,7 @@ 10 - 250 + 160 101 23 @@ -175,7 +187,7 @@ 340 - 40 + 130 101 23 @@ -192,7 +204,7 @@ 340 - 130 + 100 101 23 @@ -277,7 +289,7 @@ 120 - 220 + 250 101 23 @@ -328,7 +340,7 @@ 340 - 100 + 40 101 23 @@ -396,13 +408,13 @@ 120 - 250 + 280 101 23 - OD 52pj + OD 52PJ @@ -566,7 +578,7 @@ 10 - 310 + 220 101 23 @@ -600,7 +612,7 @@ 10 - 220 + 130 101 23 @@ -617,7 +629,7 @@ 120 - 280 + 310 101 23 @@ -634,7 +646,7 @@ 10 - 280 + 190 101 23 @@ -651,7 +663,7 @@ 120 - 190 + 220 101 23 @@ -685,7 +697,7 @@ 450 - 160 + 190 101 23 @@ -702,7 +714,7 @@ 450 - 190 + 220 101 23 @@ -732,11 +744,11 @@ :/OpenArk/revtools/fiddler.ico:/OpenArk/revtools/fiddler.ico - + - 230 - 160 + 120 + 190 101 23 @@ -746,31 +758,14 @@ - :/OpenArk/revtools/default.ico:/OpenArk/revtools/default.ico + :/OpenArk/revtools/ghidra.ico:/OpenArk/revtools/ghidra.ico - + 450 - 220 - 101 - 23 - - - - BurpSuite - - - - :/OpenArk/revtools/wireshark.ico:/OpenArk/revtools/wireshark.ico - - - - - - 450 - 250 + 160 101 23 @@ -780,10 +775,10 @@ - :/OpenArk/revtools/wireshark.ico:/OpenArk/revtools/wireshark.ico + :/OpenArk/revtools/charles.ico:/OpenArk/revtools/charles.ico - + 340 @@ -797,10 +792,10 @@ - :/OpenArk/revtools/spyxx.ico:/OpenArk/revtools/spyxx.ico + :/OpenArk/revtools/window.ico:/OpenArk/revtools/window.ico - + 340 @@ -814,10 +809,10 @@ - :/OpenArk/revtools/hxd.ico:/OpenArk/revtools/hxd.ico + :/OpenArk/revtools/diskgenius.ico:/OpenArk/revtools/diskgenius.ico - + 450 @@ -834,10 +829,10 @@ - :/OpenArk/revtools/wireshark.ico:/OpenArk/revtools/wireshark.ico + :/OpenArk/revtools/curl.ico:/OpenArk/revtools/curl.ico - + 450 @@ -854,14 +849,14 @@ - :/OpenArk/revtools/wireshark.ico:/OpenArk/revtools/wireshark.ico + :/OpenArk/revtools/default.ico:/OpenArk/revtools/default.ico - + 10 - 160 + 310 101 23 @@ -871,27 +866,27 @@ - :/OpenArk/revtools/dbgview.ico:/OpenArk/revtools/dbgview.ico + :/OpenArk/revtools/wke.ico:/OpenArk/revtools/wke.ico - + 10 - 130 + 280 101 23 - PCHunter2 + PCHunter+ :/OpenArk/revtools/pchunter.ico:/OpenArk/revtools/pchunter.ico - + 450 @@ -908,10 +903,10 @@ - :/OpenArk/revtools/wireshark.ico:/OpenArk/revtools/wireshark.ico + :/OpenArk/revtools/nmap.ico:/OpenArk/revtools/nmap.ico - + 560 @@ -925,10 +920,10 @@ - :/OpenArk/revtools/everything.ico:/OpenArk/revtools/everything.ico + :/OpenArk/revtools/winrar.ico:/OpenArk/revtools/winrar.ico - + 560 @@ -942,10 +937,10 @@ - :/OpenArk/revtools/everything.ico:/OpenArk/revtools/everything.ico + :/OpenArk/revtools/7z.ico:/OpenArk/revtools/7z.ico - + 560 @@ -955,14 +950,14 @@ - ChromeSetup + Chrome85 - :/OpenArk/revtools/everything.ico:/OpenArk/revtools/everything.ico + :/OpenArk/revtools/chromesetup.ico:/OpenArk/revtools/chromesetup.ico - + 560 @@ -972,14 +967,14 @@ - Chrome + Chrome49 - :/OpenArk/revtools/everything.ico:/OpenArk/revtools/everything.ico + :/OpenArk/revtools/chrome.ico:/OpenArk/revtools/chrome.ico - + 560 @@ -989,37 +984,98 @@ - FirefoxSetup + Firefox - :/OpenArk/revtools/everything.ico:/OpenArk/revtools/everything.ico + :/OpenArk/revtools/firefox.ico:/OpenArk/revtools/firefox.ico + + + + + + 230 + 160 + 101 + 23 + + + + Keygener + + + + :/OpenArk/revtools/keygener.ico:/OpenArk/revtools/keygener.ico + + + + + + 230 + 190 + 101 + 23 + + + + PYGTools + + + + :/OpenArk/revtools/pygtools.ico:/OpenArk/revtools/pygtools.ico + + + + + + 560 + 280 + 101 + 23 + + + + CPU-Z + + + + :/OpenArk/revtools/cpuz.ico:/OpenArk/revtools/cpuz.ico + + + + + + 560 + 310 + 101 + 23 + + + + AIDA64 + + + + :/OpenArk/revtools/aida64.ico:/OpenArk/revtools/aida64.ico + + + + + + 230 + 220 + 101 + 23 + + + + PoolMonX + + + + :/OpenArk/revtools/poolmonx.ico:/OpenArk/revtools/poolmonx.ico - - - - - - - - QLayout::SetMaximumSize - - - - - 24 - - - true - - - - - - - ToolsFolder - @@ -1031,8 +1087,20 @@ WinDevKits + + 0 + + + 0 + + + 0 + + + 0 + - + 0 @@ -1048,11 +1116,11 @@ - + - 420 - 10 + 230 + 190 131 23 @@ -1062,13 +1130,13 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 130 + 120 40 101 23 @@ -1079,13 +1147,13 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/tortoisegit.ico:/OpenArk/devkits/tortoisegit.ico - + - 130 + 120 70 101 23 @@ -1096,13 +1164,13 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/tortoisesvn.ico:/OpenArk/devkits/tortoisesvn.ico - + - 130 + 120 10 101 23 @@ -1113,14 +1181,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/git.ico:/OpenArk/devkits/git.ico - + - 420 - 40 + 230 + 160 131 23 @@ -1130,14 +1198,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 420 - 70 + 230 + 130 131 23 @@ -1147,13 +1215,13 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 420 + 230 100 131 23 @@ -1164,14 +1232,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 420 - 130 + 230 + 70 131 23 @@ -1181,14 +1249,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 420 - 160 + 230 + 40 131 23 @@ -1198,48 +1266,48 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 420 - 190 - 281 + 230 + 10 + 131 23 - vcredist_2015~2019_x86 + vcredist_15~19_x86 - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 420 - 220 - 281 + 370 + 10 + 131 23 - vcredist_2015~2019_x64 + vcredist_15~19_x64 - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 570 - 160 + 370 + 40 131 23 @@ -1249,14 +1317,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 570 - 70 + 370 + 130 131 23 @@ -1266,13 +1334,13 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 570 + 370 100 131 23 @@ -1283,14 +1351,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 570 - 40 + 370 + 160 131 23 @@ -1300,14 +1368,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 570 - 130 + 370 + 70 131 23 @@ -1317,14 +1385,14 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + - 570 - 10 + 370 + 190 131 23 @@ -1334,10 +1402,10 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/vcredist.ico:/OpenArk/devkits/vcredist.ico - + 10 @@ -1351,10 +1419,10 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/jdk.ico:/OpenArk/devkits/jdk.ico - + 10 @@ -1368,10 +1436,10 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/python.ico:/OpenArk/devkits/python.ico - + 10 @@ -1385,7 +1453,7 @@ - :/OpenArk/revtools/procexp.ico:/OpenArk/revtools/procexp.ico + :/OpenArk/devkits/golang.ico:/OpenArk/devkits/golang.ico @@ -1394,6 +1462,33 @@ + + + + QLayout::SetMaximumSize + + + 140 + + + + + 50 + + + true + + + + + + + ToolsFolder + + + + + diff --git a/src/OpenArkDrv/arkdrv-api/api-process/api-process.cpp b/src/OpenArkDrv/arkdrv-api/api-process/api-process.cpp index 5f8c748..fe2b53a 100644 --- a/src/OpenArkDrv/arkdrv-api/api-process/api-process.cpp +++ b/src/OpenArkDrv/arkdrv-api/api-process/api-process.cpp @@ -33,6 +33,8 @@ HANDLE WINAPI OpenProcessR0(DWORD access, BOOL inherit, DWORD pid) HANDLE WINAPI OpenProcess(DWORD access, BOOL inherit, DWORD pid) { + if (pid == -1) return NULL; + HANDLE phd = ::OpenProcess(access, inherit, pid); if (phd) return phd;