首页
社区
课程
招聘
[旧帖] [原创]阳春三月屠狗记 0.00雪花
发表于: 2008-3-20 15:46 9419

[旧帖] [原创]阳春三月屠狗记 0.00雪花

2008-3-20 15:46
9419
三月,阴雨而无事,身极慵倦,闲而无聊,正值赏玩《加密解密教程》颇觉有悟道之感。脑中灵光一闪,记起公司资料室有一档案管理软件,号称价值不菲,身价数以千计,其软件附密狗一只,不知其性良否?技痒,借之以习杀狗之技。
沐浴、更衣、焚香一束、心中祷告过往神灵,礼毕。安装该软件,察看其目录,Vfp6r.dll之流文件一浏无遗,该软件为visual Foxpro所写无疑。Ida pro简单跟进,文件头无它,仅foxpro常规exe头。指令良顺,无花无壳。祭出FoxTool2.2,勾选解密时生成app文件以便进一步分析.
     
设定存盘路径,反编译。打开程序名对应的prg文件:小狗在此:
declare integer DogRead in WIN32DLL integer, integer, string @
declare integer DogWrite in WIN32DLL integer, integer, string @
dogaddr = 0
dogbytes = 11
data = "123456"
newdog = DOGREAD(DOGBYTES,DOGADDR,@DATA)
if NEWDOG <> 0
   clear dlls
   declare integer DogRead in OLD32DLL integer, integer, string @
   declare integer DogWrite in OLD32DLL integer, integer, string @
   olddog = DOGREAD(DOGBYTES,DOGADDR,@DATA)
   if OLDDOG <> 0
      = MESSAGEBOX("无狗提示!",48,"信息窗口")
      return
   endif
endif
dogaddr = 0
dogbytes = 9
dogdata = "软件名称此名称为原软件名称,不便提供已作修改”
i = DOGWRITE(DOGBYTES,DOGADDR,@DOGDATA)

一看可知为读狗函数,OLD32DLL为叫狗文件,
declare integer DogRead in OLD32DLL integer, integer, string @
declare integer DogWrite in OLD32DLL integer, integer, string@
此为读狗函数。

这两函数改为标准api声明如下:
int WINAPI  DogRead(int a,int b,char* c)
LONG WINAPI  DogWrite(int a,int b,char* c)

本想用IDAPro仔细跟踪.dll实现,但转念一想,此仍事倍功半之举,打开VC2008建一标准window 工程,选建dll项,项目名设为OLD32DLL,OLD32DLL.cpp代码加入如下行:
int WINAPI  DogRead(int a,int b,char* c)
{
        return 0;//根据vfp的代码提示,返回0就是正确,反之为读狗失败
}

LONG WINAPI  DogWrite(int a,int b,char* c)
{
/* dogaddr = 0
dogbytes = 9
dogdata = "软件名称”
i = DOGWRITE(DOGBYTES,DOGADDR,@DOGDATA)
以上代码可知写狗函数会返回写入字节数
*/
        return 9;
}

项目加入一OLD32DLL.def文件,代码如下:
LIBRARY        "OLD32DLL"
EXPORTS
        DogRead
        DogWrite

编译、连接,得到的OLD32DLL.dll覆盖软件目录下同名项,爆破完成,杀狗结束,此狗性顺良,杀之心有悲悯之念。。。。。。

后记:在本机上调试通过,将OLD32DLL.dll,如法复制至同事机器上,提示出错,百思不得其解,好在神灵有知,下午忽有灵仿,是否由于是VC2008,这个dll不是以前那种本地dll? 在同事机器上装上net framework3.5运行时支持库,一切以完美收场,事后不痛骂老比设计VC2008变态,难解心头愤恨。。。。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好文  拜读.
2008-3-20 15:52
0
雪    币: 334
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
杀狗高手
2008-3-21 11:07
0
雪    币: 212
活跃值: (1645)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主运气很好啊。
2008-3-21 17:28
0
雪    币: 246
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
ida好强大啊,我还不会用,抓紧学习去了,嘿嘿
2008-3-21 18:59
0
雪    币: 463
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
此为软模拟了,如果直接HOOK,就是真的DLL模拟了。
2008-3-21 22:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哇,学习了LZ了
2008-3-21 23:18
0
雪    币: 200
活跃值: (245)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
依据中华人民共各国刑法条例:
楼主以下行为可以去坐牢了,将软件复制到他人电脑上非法运行...
2008-3-22 06:33
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
算你厉害
2008-3-22 12:52
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
10
3年118w
2008-3-22 13:05
0
雪    币: 170
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
注意中国的全称!!!!
2008-3-22 13:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
复杂...不是很看得明白.
2008-3-22 16:55
0
雪    币: 209
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习了,我正在打一个狗呢,费了我好多时间,没成。。。
2008-4-17 22:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
支持原创作业,学习了!
2008-4-18 08:10
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
羡慕高手 学习学习
2008-4-18 08:55
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
后记:在本机上调试通过,将OLD32DLL.dll,如法复制至同事机器上,提示出错,百思不得其解,好在神灵有知,下午忽有灵仿,是否由于是VC2008,这个dll不是以前那种本地dll? 在同事机器上装上net framework3.5运行时支持库,一切以完美收场,事后不痛骂老比设计VC2008变态,难解心头愤恨。。。。。。

=============
跟.net没有关系吧?应该是别人的机器没有VC2008的运行库文件吧?
你试试把DLL所依赖的dll静态链接试试?
2008-4-18 09:54
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
或者你用depends看看你的dll依赖哪些dll?
把出错提示贴出来.....

BTW:另外你这个有点太简单了,还是一个标志位的加密狗而已,尝试一下最新的方正飞腾或者飞旋的狗?或者狗里面有算法的?
2008-4-18 09:56
0
雪    币: 119
活跃值: (313)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
谈笑间 灰飞烟灭 厉害
2008-4-18 14:24
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
顺                     。
2008-7-17 20:48
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
稍有点所获。学习中
2008-7-18 09:21
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
高手啊!!!!!!!!!!!!!!!
2008-7-18 17:23
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
不会编DLL~
2009-6-2 06:47
0
游客
登录 | 注册 方可回帖
返回
//