吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 1719|回复: 9

求一个version.dll的源码

[复制链接]
樱花落满地 发表于 2024-5-10 18:24 | 显示全部楼层 |阅读模式

本站严厉禁止求脱求破行为(包含无自我分析直接求思路),如发现此类求助主题请点击“举报”,让我们共同维护优质的学习环境!


30HB
在精益上下载的工具,DLL劫持代码生成,把version弄成代码了,复制到易语言编译后发现软件不加载,还是加载的系统DLL,请各位老师发一个源码,能加载就行

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
秋寒 发表于 2024-5-10 19:06 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Eric 发表于 2024-5-10 20:51 | 显示全部楼层

你先要确保需要劫持的程序输入表是否有version.dll
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 樱花落满地 发表于 2024-5-10 22:44 | 显示全部楼层

Eric 发表于 2024-5-10 20:51
你先要确保需要劫持的程序输入表是否有version.dll

有这个,就是因为没有winspool所以才用的这个
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
要你管 发表于 2024-5-10 23:58 | 显示全部楼层

首先要确认这个DLL是否能被劫持。从系统目录里复制DLL出来放到EXE同级目录,运行EXE看看是加载同级目录的DLL还是系统目录里的DLL。
我印象中你说的这个DLL不能被劫持。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
柳暗花明丶七七 发表于 2024-5-11 12:53 | 显示全部楼层

要你管 发表于 2024-5-10 23:58
首先要确认这个DLL是否能被劫持。从系统目录里复制DLL出来放到EXE同级目录,运行EXE看看是加载同级目录的DL ...

的确,单独拉出来也没加载,应该是不能被劫持,winmm,这个可以,有源码吗
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
终极帅哥 发表于 2024-5-12 17:48 | 显示全部楼层

用AheadLib 自己生成一个
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
学编程的闹钟 发表于 2024-6-15 11:43 | 显示全部楼层

version.dll不是win系统的dll吗,这还有源码,难道是用ida反编译???
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
dujinshanD 发表于 2024-6-17 20:29 | 显示全部楼层

  
DLL命令名返回值类型公开备 注
LoadLibrary整数型 
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
LoadLibraryA
参数名类 型传址数组备 注
lpLibFileName文本型  
DLL命令名返回值类型公开备 注
FreeLibrary整数型 
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
FreeLibrary
参数名类 型传址数组备 注
hLibModule整数型  
DLL命令名返回值类型公开备 注
GetProcAddress整数型 
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
GetProcAddress
参数名类 型传址数组备 注
hModule整数型  
lpProcName文本型  
DLL命令名返回值类型公开备 注
GetCurrentProcessId整数型
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
GetCurrentProcessId
参数名类 型传址数组备 注
DLL命令名返回值类型公开备 注
GetLastError整数型 
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
GetLastError
参数名类 型传址数组备 注



  
窗口程序集名保 留  保 留备 注
Version劫持  支持静态编译和黑月静态编译
变量名类 型数组备 注
dll整数型  
GetFileVersionInfoA整数型  
GetFileVersionInfoByHandle整数型  
GetFileVersionInfoExW整数型  
GetFileVersionInfoSizeA整数型  
GetFileVersionInfoSizeExW整数型  
GetFileVersionInfoSizeW整数型  
GetFileVersionInfoW整数型  
VerFindFileA整数型  
VerFindFileW整数型  
VerInstallFileA整数型  
VerInstallFileW整数型  
VerLanguageNameA整数型  
VerLanguageNameW整数型  
VerQueryValueA整数型  
VerQueryValueW整数型  

子程序名返回值类型公开备 注
_启动子程序整数型 请在本子程序中放置动态链接库初始化代码
如果真 (dll = 0)
初始化DLL ()

信息框 (“劫持成功”, 0, , )
返回 (0)  ' 返回值被忽略。
子程序名返回值类型公开备 注
Dll入口函数逻辑型
参数名类 型参考可空数组备 注
DLL实例句柄整数型   
调用类型整数型   
保留整数型   
判断 (调用类型 = 1)
返回 (初始化DLL ())
判断 (调用类型 = 0)
释放DLL ()



返回 ()
子程序名返回值类型公开备 注
释放DLL  
如果真 (dll ≠ 0)
FreeLibrary (dll)

子程序名返回值类型公开备 注
初始化DLL逻辑型 
dll = LoadLibrary (读环境变量 (“SystemRoot”)“\system32\version.dll”)
如果真 (dll = 0)
返回 ()

GetFileVersionInfoA = GetProcAddress (dll, “GetFileVersionInfoA”)
如果真 (GetFileVersionInfoA = 0)
FreeLibrary (dll)
返回 ()

GetFileVersionInfoByHandle = GetProcAddress (dll, “GetFileVersionInfoByHandle”)
如果真 (GetFileVersionInfoByHandle = 0)
FreeLibrary (dll)
返回 ()

GetFileVersionInfoExW = GetProcAddress (dll, “GetFileVersionInfoExW”)
如果真 (GetFileVersionInfoExW = 0)
FreeLibrary (dll)
返回 ()

GetFileVersionInfoSizeA = GetProcAddress (dll, “GetFileVersionInfoSizeA”)
如果真 (GetFileVersionInfoSizeA = 0)
FreeLibrary (dll)
返回 ()

GetFileVersionInfoSizeExW = GetProcAddress (dll, “GetFileVersionInfoSizeExW”)
如果真 (GetFileVersionInfoSizeExW = 0)
FreeLibrary (dll)
返回 ()

GetFileVersionInfoSizeW = GetProcAddress (dll, “GetFileVersionInfoSizeW”)
如果真 (GetFileVersionInfoSizeW = 0)
FreeLibrary (dll)
返回 ()

GetFileVersionInfoW = GetProcAddress (dll, “GetFileVersionInfoW”)
如果真 (GetFileVersionInfoW = 0)
FreeLibrary (dll)
返回 ()

VerFindFileA = GetProcAddress (dll, “VerFindFileA”)
如果真 (VerFindFileA = 0)
FreeLibrary (dll)
返回 ()

VerFindFileW = GetProcAddress (dll, “VerFindFileW”)
如果真 (VerFindFileW = 0)
FreeLibrary (dll)
返回 ()

VerInstallFileA = GetProcAddress (dll, “VerInstallFileA”)
如果真 (VerInstallFileA = 0)
FreeLibrary (dll)
返回 ()

VerInstallFileW = GetProcAddress (dll, “VerInstallFileW”)
如果真 (VerInstallFileW = 0)
FreeLibrary (dll)
返回 ()

VerLanguageNameA = GetProcAddress (dll, “VerLanguageNameA”)
如果真 (VerLanguageNameA = 0)
FreeLibrary (dll)
返回 ()

VerLanguageNameW = GetProcAddress (dll, “VerLanguageNameW”)
如果真 (VerLanguageNameW = 0)
FreeLibrary (dll)
返回 ()

VerQueryValueA = GetProcAddress (dll, “VerQueryValueA”)
如果真 (VerQueryValueA = 0)
FreeLibrary (dll)
返回 ()

VerQueryValueW = GetProcAddress (dll, “VerQueryValueW”)
如果真 (VerQueryValueW = 0)
FreeLibrary (dll)
返回 ()

返回 ()
子程序名返回值类型公开备 注
GetFileVersionInfoA一定要公开
变量名类 型静态数组备 注
jmp整数型  
jmp = GetFileVersionInfoA
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
GetFileVersionInfoByHandle不要修改
变量名类 型静态数组备 注
jmp整数型  
jmp = GetFileVersionInfoByHandle
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
GetFileVersionInfoExW
变量名类 型静态数组备 注
jmp整数型  
jmp = GetFileVersionInfoExW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
GetFileVersionInfoSizeA
变量名类 型静态数组备 注
jmp整数型  
jmp = GetFileVersionInfoSizeA
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
GetFileVersionInfoSizeExW
变量名类 型静态数组备 注
jmp整数型  
jmp = GetFileVersionInfoSizeExW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
GetFileVersionInfoSizeW
变量名类 型静态数组备 注
jmp整数型  
jmp = GetFileVersionInfoSizeW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
GetFileVersionInfoW
变量名类 型静态数组备 注
jmp整数型  
jmp = GetFileVersionInfoW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerFindFileA
变量名类 型静态数组备 注
jmp整数型  
jmp = VerFindFileA
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerFindFileW
变量名类 型静态数组备 注
jmp整数型  
jmp = VerFindFileW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerInstallFileA
变量名类 型静态数组备 注
jmp整数型  
jmp = VerInstallFileA
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerInstallFileW
变量名类 型静态数组备 注
jmp整数型  
jmp = VerInstallFileW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerLanguageNameA
变量名类 型静态数组备 注
jmp整数型  
jmp = VerLanguageNameA
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerLanguageNameW
变量名类 型静态数组备 注
jmp整数型  
jmp = VerLanguageNameW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerQueryValueA
变量名类 型静态数组备 注
jmp整数型  
jmp = VerQueryValueA
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })
子程序名返回值类型公开备 注
VerQueryValueW
变量名类 型静态数组备 注
jmp整数型  
jmp = VerQueryValueW
置入代码 ({ 201, 88, 139, 68, 36, 244, 91, 95, 94, 255, 224 })



吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
商品国际 发表于 2024-7-2 08:49 | 显示全部楼层

如果是易语言的 最好看下清单是否屏蔽了 如果屏蔽了考虑用注入的方式去KO掉
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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