2

[下载] AheadLib修改 支持x64支持类/命名空间

yeyeshun 2018-1-31 17:26 2822

2018/3/6: 非常感谢csjwaman提供的IsFunction完善,对加壳dll的处理更好,能支持转发。

                   更新了附件,有需要的朋友请重新下载。

*****************************************************************************************

2018/2/26: hackbs提供的Dui库真可怕,随便编译一下就是100+错误。

            修复了我能修复的部分,但是还是需要配合手动,比如包含对应的头文件,

            以及一些结构体需要自己声明一下。

            还有就是涉及到结构体的部分我没办法区分,都是使用了class XXX{...},

            需要肉眼分辨并修改为struct XXX{...},否则一堆警告,而且不确定会不会影响使用。

                   更新了附件,有需要的朋友请重新下载。

*****************************************************************************************

2018/2/14 : 感谢 csjwaman 提交的bug,一个WIN64宏范围不对影响到了32位生成的代码。

                                               年前不再更新了,祝大家新年快乐!

                   更新了附件,请遇到问题的朋友重新下载。

*****************************************************************************************

2018/2/13: 对于数据与函数的区分,多加了一种判断方式。

                   更新了附件,有需要的朋友请重新下载。

*****************************************************************************************

2018/2/12: 支持x64
                   更新了附件,有需要的朋友请重新下载。
*****************************************************************************************
2018/2/9 : 最近重新熟悉了代码,按照我理解的程序逻辑重新把功能完善了一下。
            感谢 hackbs 提交的bug。
                   更新了附件,请遇到问题的朋友重新下载。
*****************************************************************************************
2018/2/7 : 感谢 csjwaman 提交的bug,我解析函数名的时候不严谨,导致某些情况下崩溃。
                   更新了附件,请遇到问题的朋友重新下载。
*****************************************************************************************
在此版本的基础上修改的:
https://bbs.pediy.com/thread-196111.htm
感谢前人的努力与分享。

前一段帮朋友做一个劫持,发现该dll含有导出类,手边的aheadlib版本不支持,凑合着手动改了改应付过去了。
后来觉得每次手动也不是事,于是下载了一份ysoni修改过的源码,做了一些修改,支持了。
最后于 2018-3-6 10:39 被yeyeshun编辑 ,原因:
上传的附件:
本主题帖已收到 2 次赞赏,累计¥20.00
最新回复 (68)
sjh_pediy 2018-1-31 18:19
2
好样的
ytmrgw 2018-2-1 09:30
3
谢谢分享
hzqst 2018-2-5 16:38
4
谢谢分享
KevinsBobo 2018-2-5 17:48
5
感谢分享
聖blue 2018-2-5 19:56
6
deadlydk 2018-2-6 10:40
7
谢谢分享
kakasasa 2018-2-6 17:07
8
感谢分享
jgs 2018-2-6 19:14
9
感谢分享 
jgs 2018-2-6 19:17
10
悲剧了,XP下不能用,楼主编译时没有选择兼容XP。
csjwaman 2018-2-6 21:31
11
源码编译通不过
yeyeshun 2018-2-7 10:26
12
jgs 悲剧了,XP下不能用,楼主编译时没有选择兼容XP。[em_16]
有源码,大哥自己重新编译下就好了
yeyeshun 2018-2-7 10:26
13
csjwaman 源码编译通不过
这个是原版的问题,有一个函数没声明,我不清楚那部分的逻辑不敢乱改,自己注释掉就好了
csjwaman 2018-2-7 13:48
14
yeyeshun 这个是原版的问题,有一个函数没声明,我不清楚那部分的逻辑不敢乱改,自己注释掉就好了
加载这个DLL时异常退出。请楼主看看是什么原因。
上传的附件:
yeyeshun 2018-2-7 14:28
15
csjwaman 加载这个DLL时异常退出。请楼主看看是什么原因。
额,这个是我解析的时候出错。我当时测试的时候思路不够广,这个样本很好。马上更新
xiaohucode 2018-2-7 19:56
16
感谢分享
StriveXjun 2018-2-7 22:52
17
https://github.com/strivexjun/AheadLib-x86-x64
yes师傅可以看看我写的这个,可以识别导出数据函数、中转函数。
rescuo 2018-2-8 08:29
18
厉害啊,都是大神级别的
yeyeshun 2018-2-8 10:28
19
StriveXjun https://github.com/strivexjun/AheadLib-x86-x64 yes师傅可以看看我写的这个,可以识别导出数据函数、中转函数。
小俊师傅666啊
早说你有我就不费这脑子了哈哈哈
csjwaman 2018-2-8 15:59
20
StriveXjun https://github.com/strivexjun/AheadLib-x86-x64 yes师傅可以看看我写的这个,可以识别导出数据函数、中转函数。
生成的CPP文件貌似不能编译:(
csjwaman 2018-2-8 16:00
21
yeyeshun 额,这个是我解析的时候出错。我当时测试的时候思路不够广,这个样本很好。马上更新
修改后的可以正常编译了,赞!
hackbs 2018-2-8 16:45
22
导出这个DLL的源码不能正常编译

上传的附件:
yeyeshun 2018-2-9 16:31
23
hackbs 导出这个DLL的源码不能正常编译
好的,在改
改完了,请重新下载附件测试。只保证能编译通过,具体能不能正常使用请回帖反馈,谢谢。
jgs 2018-2-9 20:58
24
感谢楼主重新修改编译后的版本支持了XP
csjwaman 2018-2-10 20:36
25
yeyeshun hackbs 导出这个DLL的源码不能正常编译 好的,在改改完了,请重新下载附件测试。只保证能编译通过,具体能不能正常使用请回帖反馈,谢谢。
VC++60下貌似还是编译不了。
qqsunqiang 2018-2-10 22:30
26
谢谢楼主的分享。
yeyeshun 2018-2-11 10:10
27
csjwaman VC++60下貌似还是编译不了。
我用的2013,不清楚vc6是不是有问题。可以把错误提示发上来我看看能不能解决,我自己测试2013是可以编译的
csjwaman 2018-2-11 12:17
28
yeyeshun 我用的2013,不清楚vc6是不是有问题。可以把错误提示发上来我看看能不能解决,我自己测试2013是可以编译的
Deleting  intermediate  files  and  output  files  for  project  'AdbWinApi  -  Win32  Release'.
--------------------Configuration:  AdbWinApi  -  Win32  Release--------------------
Compiling...
StdAfx.cpp
AdbWinApi.cpp
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  error  C2039:  'basic_string'  :  is  not  a  member  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  error  C2143:  syntax  error  :  missing  ';'  before  '<'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  error  C2079:  'basic_string'  uses  undefined  class  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  error  C2059:  syntax  error  :  '<'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  error  C2027:  use  of  undefined  type  'stlp_std'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  see  declaration  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  warning  C4099:  'stlp_std'  :  type  name  first  seen  using  'class'  now  seen  using  'struct'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  see  declaration  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  error  C2027:  use  of  undefined  type  'stlp_std'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  see  declaration  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  error  C2238:  unexpected  token(s)  preceding  ';'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2027:  use  of  undefined  type  'stlp_std'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  see  declaration  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2143:  syntax  error  :  missing  ';'  before  '<'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2079:  'basic_string'  uses  undefined  class  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2488:  'basic_string'  :  'naked'  can  only  be  applied  to  function  definitions
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2143:  syntax  error  :  missing  ';'  before  '<'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2027:  use  of  undefined  type  'stlp_std'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  see  declaration  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  warning  C4099:  'stlp_std'  :  type  name  first  seen  using  'class'  now  seen  using  'struct'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  see  declaration  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2027:  use  of  undefined  type  'stlp_std'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(687)  :  see  declaration  of  'stlp_std'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(725)  :  error  C2039:  'interface_name'  :  is  not  a  member  of  'AdbInterfaceObject'
                C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(678)  :  see  declaration  of  'AdbInterfaceObject'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(726)  :  error  C2143:  syntax  error  :  missing  ';'  before  '{'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(726)  :  error  C2447:  missing  function  header  (old-style  formal  list?)
Error  executing  xicl6.exe.

AdbWinApi.dll  -  17  error(s),  2  warning(s)
yeyeshun 2018-2-11 17:59
29
csjwaman Deleting intermediate files and output files for project 'AdbWinApi - Win32 Release'. ------------- ...
#include  <string>
using  namespace  std;
这个加上了没?
csjwaman 2018-2-11 21:02
30
yeyeshun #include using namespace std; 这个加上了没?
加上后错误少了些,但还是出错:
Deleting  intermediate  files  and  output  files  for  project  'AdbWinApi  -  Win32  Release'.
--------------------Configuration:  AdbWinApi  -  Win32  Release--------------------
Compiling...
StdAfx.cpp
AdbWinApi.cpp
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(700)  :  warning  C4099:  'char_traits<unsigned  short>'  :  type  name  first  seen  using  'class'  now  seen  using  'struct'
                C:\VC++6.xPro\sdk\stl\stlport\stlport\stl/char_traits.h(244)  :  see  declaration  of  'char_traits<unsigned  short>'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(700)  :  error  C2908:  explicit  specialization;  'char_traits<unsigned  short>'  has  already  been  instantiated  from  the  primary  template
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(700)  :  error  C2908:  explicit  specialization;  'allocator<unsigned  short>'  has  already  been  instantiated  from  the  primary  template
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(700)  :  error  C2908:  explicit  specialization;  'basic_string<unsigned  short,class  stlp_std::char_traits<unsigned  short>,class  stlp_std::allocator<unsigned  short>  >'  has  already  been  instantiated  from  th
e  primary  template
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(738)  :  warning  C4099:  'char_traits<unsigned  short>'  :  type  name  first  seen  using  'class'  now  seen  using  'struct'
                C:\VC++6.xPro\sdk\stl\stlport\stlport\stl/char_traits.h(244)  :  see  declaration  of  'char_traits<unsigned  short>'
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(738)  :  error  C2908:  explicit  specialization;  'char_traits<unsigned  short>'  has  already  been  instantiated  from  the  primary  template
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(738)  :  error  C2908:  explicit  specialization;  'allocator<unsigned  short>'  has  already  been  instantiated  from  the  primary  template
C:\VC++6.xPro\MyProjects\AdbWinApi\AdbWinApi.cpp(738)  :  error  C2908:  explicit  specialization;  'basic_string<unsigned  short,class  stlp_std::char_traits<unsigned  short>,class  stlp_std::allocator<unsigned  short>  >'  has  already  been  instantiated  from  th
e  primary  template
Error  executing  xicl6.exe.

AdbWinApi.dll  -  6  error(s),  2  warning(s)

yeyeshun 2018-2-12 10:11
31
csjwaman 加上后错误少了些,但还是出错: Deleting intermediate files and output files for project 'AdbWinApi - Win32 Release ...
可能是sdk版本的问题吧,我用2013是可以编译的。可能是一些语法不被识别,我没有vc6,没办法测试
五德转移 2018-2-12 11:13
32
clear()  改成empty()  重定义变量改个名字(vc6)。
yeyeshun 2018-2-12 15:23
33
支持x64了。有需求的朋友们就吃点亏当小白鼠了,有问题请回帖反馈,谢谢!
csjwaman 2018-2-12 16:53
34
貌似单引号错了:
namespace  AdbObjectHandle
{
       ALCPP  const  `vftable'
       {
               __asm  JMP  pfn___7AdbObjectHandle__6B_;
       }
}
yeyeshun 2018-2-12 17:19
35
csjwaman 貌似单引号错了: namespace AdbObjectHandle { ALCPP const `vftable' { __asm JMP pfn___7AdbObjectHand ...
你试试新版本吧,这个我之前的代码没处理好,这个虚函数表识别错误,新版本应该没有这个错误了
csjwaman 2018-2-12 21:06
36
yeyeshun 你试试新版本吧,这个我之前的代码没处理好,这个虚函数表识别错误,新版本应该没有这个错误了
新版仍然  ALCPP    const    `vftable'错误:()
yeyeshun 2018-2-13 10:52
37
csjwaman 新版仍然 ALCPP const `vftable'错误:()
这个说来话长。。中间修复的代码使用了更通用的一种方式去识别数据与函数,然后随便在本机找了一个AdbWinApi.dll能通过我就直接发布了。
今天重新下载了楼上附件的AdbWinApi.dll,发现确实不一样,之前那种方法无法识别出来虚函数表,所以加了一种判断方式,这次应该能过了。
麻烦重新下载测试,有劳,多谢!
csjwaman 2018-2-13 11:30
38
yeyeshun 这个说来话长。。中间修复的代码使用了更通用的一种方式去识别数据与函数,然后随便在本机找了一个AdbWinApi.dll能通过我就直接发布了。 今天重新下载了楼上附件的AdbWinApi.dll,发现 ...
楼主的敬业精神值得敬佩,赞一个!
yeyeshun 2018-2-13 11:39
39
csjwaman 楼主的敬业精神值得敬佩,赞一个!
谬赞了,谢谢。
也非常感谢各位帮忙测试,如果是到后面我自己在使用过程中才测试出来,代码早就忘光了改起来就非常麻烦了,谢谢大家了!
AperOdry 2018-2-13 16:07
40
感谢分享,很适合我这种懒人 
csjwaman 2018-2-13 21:05
41
yeyeshun 谬赞了,谢谢。 也非常感谢各位帮忙测试,如果是到后面我自己在使用过程中才测试出来,代码早就忘光了改起来就非常麻烦了,谢谢大家了!
新版貌似对这个DLL编译不了:(
上传的附件:
csjwaman 2018-2-13 22:25
42
五德转移 clear() 改成empty() 重定义变量改个名字(vc6)。
没明白意思
yeyeshun 2018-2-14 10:43
43
csjwaman 新版貌似对这个DLL编译不了:(
尴尬了,一个低级错误。最近一直在搞64位dll的导出测试,结果32位的有一个WIN64宏范围不对,留了一点在32位上导致编译失败。现已修复。
另外这个dll是加过壳的,只能使用直接转发。“即时调用函数”也许可以,但是可能存在问题,并且对现有代码逻辑还要做不少修改,所以放弃了
最后于 2018-2-14 10:45 被yeyeshun编辑 ,原因:
csjwaman 2018-2-14 13:30
44
yeyeshun csjwaman 新版貌似对这个DLL编译不了:( 尴尬了,一个低级错误。最近一直在搞64位dll的导出测试,结果32位的有一个WIN64宏范围不对,留 ...
现在的版本还是不能“即时调用函数”,2月7日的反而可以,而且功能正常。
yber 2018-2-20 16:17
45
谢谢分享
hackbs 2018-2-22 15:51
46

崩溃了,楼主有空麻烦看看。


上传的附件:
yeyeshun 2018-2-26 17:59
47
hackbs 崩溃了,楼主有空麻烦看看。
已经做了修复。但是还是没办法直接编译,需要手动修改一些东西,比如包含头文件,结构体错误的class声明修改为struct声明,添加没有声明的结构体声明。
总的来说工作量也不大,这个库修改的地方也就是十几个吧。
还是直接转发比较好。。
hackbs 2018-2-27 14:28
48
yeyeshun 已经做了修复。但是还是没办法直接编译,需要手动修改一些东西,比如包含头文件,结构体错误的class声明修改为struct声明,添加没有声明的结构体声明。 总的来说工作量也不大,这个库修改的地方也就是 ...
哈哈,好的知道了,楼主真是有责任感。给你赞一个    ,  等我测到其他bug再提交给你了。
yeyeshun 2018-2-27 15:07
49
hackbs 哈哈,好的知道了,楼主真是有责任感。给你赞一个 [em_63] , 等我测到其他bug再提交给你了。
这个也是个人能力有限导致的bug,因为没有考虑到会有那么多形式的函数声明,遇到生成错误甚至程序崩溃基本都是类似的解析错误引起的,你们提交的样本都提供了很大的帮助,非常感谢!最后需要手动修复的部分,确实是想到了但是能力不到,无法提取出相关信息,所以只能半自动了。
另外居然还有打赏功能=。=第一次,忍不住喊一声老铁双击666
csjwaman 2018-2-27 17:59
50
yeyeshun 这个也是个人能力有限导致的bug,因为没有考虑到会有那么多形式的函数声明,遇到生成错误甚至程序崩溃基本都是类似的解析错误引起的,你们提交的样本都提供了很大的帮助,非常感谢!最后需要手动修复的部分,确实 ...
貌似加上这个  IsFunction(pInh,  pdwFunctions[i])  ?  0  :  1,反而会造成加壳DLL无法正常反编译。屏蔽后能正常反编译。
返回