吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1651|回复: 19
收起左侧

[已解决] 发现一Safengine脱壳机C++源码,不会编译,求高手指点一二

[复制链接]
xzqsr 发表于 2023-3-13 02:54
本帖最后由 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)。

其他可供参考的资料:在楼下列出。

以上。请高手不吝赐教,略指点一二,在下不胜感激。如在此发帖欠妥,请管理员删帖。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| xzqsr 发表于 2023-3-13 02:55
其他可供参考的资料:

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

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
610100 + 3 + 1 用心讨论,共获提升!

查看全部评分

3yu3 发表于 2023-3-13 09:42
本帖最后由 3yu3 于 2023-3-13 10:02 编辑

c盘下放pin目录 ,改为 release 生成就行 了。

[color=rgba(0, 0, 0, 0.85)]https://www.123pan.com/s/kXNRVv-izfUh.html提取码:NFSY

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
xzqsr + 1 + 1 谢谢@Thanks!

查看全部评分

evea 发表于 2023-3-13 10:01
本帖最后由 evea 于 2023-3-13 11:57 编辑

按提示就可以编译了啊   pin 真强

用release  编译
用debug 编译的话  设置以下
1 预处理设置一下 _WINDOWS_H_PATH_
2  C++ 语言   标准 设置成 ISO C++17 标准 (/std:c++17) 就可以了

漏了
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

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
xzqsr + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| xzqsr 发表于 2023-3-13 11:48
本帖最后由 xzqsr 于 2023-3-13 12:01 编辑

@3yu3 @evea 谢谢两位大佬的帮助,一针见血。结合二位所述,我刚刚这样自己操作一遍,现在已经成功编译,非常感谢!今日分用光了,后面会补评分,以表答谢。
 楼主| xzqsr 发表于 2023-3-13 12:10
3yu3 发表于 2023-3-13 09:42
c盘下放pin目录 ,改为 release 生成就行 了。

https://www.123pan.com/s/kXNRVv-izfUh.html提取码:NFSY

谢谢,我重新操作了,现在已经编译成功,同时被安利一个好网盘
 楼主| xzqsr 发表于 2023-3-13 12:11
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 的那个版本号,需要和我实际的相匹配
gunxsword 发表于 2023-3-13 14:30
你试了可以脱吗?我用贴子中的编译好的,脱的时候提示加载那个DLL出错,PIN这个工具的日志中提示的,也不知道这个工具是不是真的可以脱SE,楼主测试成功了吗?
也按着提示在C:\PINTOOL\放了那个DLL了
system error 216 我记得是这个错误
 楼主| xzqsr 发表于 2023-3-13 15:00
本帖最后由 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
gunxsword 发表于 2023-3-13 21:09
xzqsr 发表于 2023-3-13 15:00
是的,我也遇到了这个问题。根据我的摸索,实际运行的时候,应该删掉编译时候用的那个C:\pin文件夹,而把 ...

https://pan.baidu.com/s/18rLrA59cOG50-hWWZx8_wA?pwd=s2td

随便写了个,64位的程序,加了个SE,你试试看能脱吗
还是第一次给,64位程序加SE,一直以为这完意不支持64位呢,话说32位的都是加了变大,我这个居然加了变小了!!!反正你试试吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 07:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表