发现一Safengine脱壳机C++源码,不会编译,求高手指点一二
本帖最后由 xzqsr 于 2023-3-13 03:01 编辑事件背景:本人发现一Safengine脱壳机C++源码,想尝试效果,但并无成品需自行编译,无奈对C++知之甚少,资料亦是缺乏,遂来此求助。
求助内容:如何编译该C++项目
项目地址:https://github.com/sctnightcore/UnSafengine64
脱壳机说明:可自动脱 Safengine Shielden 2.3.9 的壳,如果没理解错的话。
项目说明:寥寥几笔,不甚清楚,请参见项目页面。本人已经进行的摸索如下,但告失败。另外,项目没有打开Issues,似乎作者不希望回复任何问题。
本人探索:
1. 下载了所需的Intel Pin 3.18及相关pdf手册(注:由“Prerequisite: Intel Pin 3.18.”推知)。
2. 解压,将包内有用部分取出,并适当重命名,并放到C盘根目录。效果为,使包内pin.exe位于C:\pin\pin.exe(注1:由“Extract Pin 3.18 into "C:\pin".”推知;注2:应该只能使用绝对位置,因为看源码发现此绝对路径)。
3. 下载项目UnSafengine64-master.zip。解压并重命名为UnSafengine64,将文件夹移动到C:\pin\source\tools\UnSafengine64(注:此路径为本人看到工程属性中的相对路径,结合无数次尝试推测)。
4. 打开VS2019(已正确安装C++环境),生成解决方案(注:由“Requires Visual Studio 2019.Build two projects.”推测),此时VS报错“无法打开 源 文件 "_WINDOWS_H_PATH_/Windows.h"”(注:该文件并不是系统自带的,而应该使用C:\pin\extras\crt\include\Windows.h,由其他资料得知)。
5. 于是本人开始进行各种尝试,如配置工程属性,希望编译时能够找到该文件,但均无效,因此求助各位大佬(注1:其他资料中说,如果用命令行编译,可以绕过该文件,但本人不知如何用命令行编译;注2:可能与此文件有关:C:\pin\source\tools\Config\makefile.win.config)。
其他可供参考的资料:在楼下列出。
以上。请高手不吝赐教,略指点一二,在下不胜感激。如在此发帖欠妥,请管理员删帖。
其他可供参考的资料:
Pin - A Dynamic Binary Instrumentation Tool - Download Pin kits here(内含pin和pdf手册)
https://www.intel.com/content/www/us/en/developer/articles/tool/pin-a-binary-instrumentation-tool-downloads.html
搭建pinvmp环境
https://d1nn3r.github.io/2019/01/28/buildpinvmp/
Tenet 技术路线(内含pin build部分)
https://bbs.kanxue.com/thread-267179.htm
Pin Tool Building Issues in Windows
https://community.intel.com/t5/Intel-C-Compiler/Pin-Tool-Building-Issues-in-Windows/td-p/1132481?profile.language=zh-CN
Configure and execute Intel's PIN Tool
https://reverseengineering.stackexchange.com/questions/11328/configure-and-execute-intels-pin-tool
Visual Studio 2017 can't find windows.h
https://stackoverflow.com/questions/43410631/visual-studio-2017-cant-find-windows-h
Building Intel pintools with Visual Studio 2019 on Windows 10
https://gist.github.com/PollyP/e50959ab97b15c83d4506dcf38753ef5
Including Windows headers within Pin from VS2017
https://groups.io/g/pinheads/topic/including_windows_headers/65995743?p=,,,20,0,0,0::recentpostdate/sticky,,,20,2,80,65995743,previd%3D1563371783000000000,nextid%3D1552460980000000000&previd=1563371783000000000&nextid=1552460980000000000
本帖最后由 3yu3 于 2023-3-13 10:02 编辑
c盘下放pin目录 ,改为 release 生成就行 了。
https://www.123pan.com/s/kXNRVv-izfUh.html提取码:NFSY 本帖最后由 evea 于 2023-3-13 11:57 编辑
按提示就可以编译了啊 pin 真强 {:1_921:}
用release编译
用debug 编译的话设置以下
1 预处理设置一下 _WINDOWS_H_PATH_
2C++ 语言 标准 设置成 ISO C++17 标准 (/std:c++17) 就可以了
漏了{:1_907:}
3 附加库目录改成
C:\PIN\intel64\lib
C:\PIN\intel64\lib-ext
C:\PIN\extras\xed-intel64\lib
C:\PIN\intel64\runtime\pincrt
4 附加包含目录改成
C:\PIN\source\include\pin
C:\PIN\source\include\pin\gen
C:\PIN\extras\xed-intel64\include\xed
C:\PIN\extras\components\include
C:\PIN\extras\stlport\include
C:\PIN\extras
C:\PIN\extras\libstdc++\include
C:\PIN\extras\crt\include
C:\PIN\extras\crt
C:\PIN\extras\crt\include\arch-x86_64
C:\PIN\extras\crt\include\kernel\uapi
C:\PIN\extras\crt\include\kernel\uapi\asm-x86 本帖最后由 xzqsr 于 2023-3-13 12:01 编辑
@3yu3 @evea 谢谢两位大佬的帮助,一针见血。结合二位所述,我刚刚这样自己操作一遍,现在已经成功编译,非常感谢!今日分用光了,后面会补评分,以表答谢。 3yu3 发表于 2023-3-13 09:42
c盘下放pin目录 ,改为 release 生成就行 了。
https://www.123pan.com/s/kXNRVv-izfUh.html提取码:NFSY
谢谢,我重新操作了,现在已经编译成功,同时被安利一个好网盘 evea 发表于 2023-3-13 10:01
按提示就可以编译了啊 pin 真强
用release编译
嗯嗯,谢谢,现在已经编译成功了,我本机还需修改 _WINDOWS_H_PATH_ 的路径,即 C:/Program Files (x86)/Windows Kits/10/Include/10.0.18362.0/um/Windows.h 的那个版本号,需要和我实际的相匹配 你试了可以脱吗?我用贴子中的编译好的,脱的时候提示加载那个DLL出错,PIN这个工具的日志中提示的,也不知道这个工具是不是真的可以脱SE,楼主测试成功了吗?
也按着提示在C:\PINTOOL\放了那个DLL了
system error 216 我记得是这个错误 本帖最后由 xzqsr 于 2023-3-13 15:01 编辑
gunxsword 发表于 2023-3-13 14:30
你试了可以脱吗?我用贴子中的编译好的,脱的时候提示加载那个DLL出错,PIN这个工具的日志中提示的,也不知道这 ...
是的,我也遇到了这个问题。根据我的摸索,实际运行的时候,应该删掉编译时候用的那个C:\pin文件夹,而把pin压缩包中的pin-3.18-98332-gaebd7b1e6-msvc-windows\intel64\bin这个文件夹复制到C:\,并且把bin改为pin,代替原来的那个。这样的话错误216即可消失。
不过仍有新的问题,报错 Failed to allocate Injector, Error = INJECTOR_ERR_NO_ACTIVE_SERVER,经过查询推知,应是被脱exe、pin、Unsafengine必须同时为32位或64位。前两者都好说,关键是Unsafengine作者只写了64位,没有32位版本,直接改成32位编译大量报错,而且我手头没有64位可供测试的程序。我目前卡在这。
可能有帮助的资料:
https://blog.csdn.net/whklhhhh/article/details/79256049
https://stackoverflow.com/questions/35454343/profile-32-bit-app-on-64-bit-system-using-intel-pin
https://github.com/season-lab/bluepill/issues/5 xzqsr 发表于 2023-3-13 15:00
是的,我也遇到了这个问题。根据我的摸索,实际运行的时候,应该删掉编译时候用的那个C:\pin文件夹,而把 ...
https://pan.baidu.com/s/18rLrA59cOG50-hWWZx8_wA?pwd=s2td
随便写了个,64位的程序,加了个SE,你试试看能脱吗
还是第一次给,64位程序加SE,一直以为这完意不支持64位呢,话说32位的都是加了变大,我这个居然加了变小了!!!反正你试试吧
页:
[1]
2