首页
社区
课程
招聘
[求助]在处理软件水印问题时,遇到的头疼的问题?
发表于: 2006-1-26 22:50 6983

[求助]在处理软件水印问题时,遇到的头疼的问题?

2006-1-26 22:50
6983
在网上找到一个好工具,没有注册的在图上有水印
我就用常用的方法在写文件下断 bp WriteFile
点写文件被断下

7C810F9F >  6A 18           PUSH 18  <==中断在这里
7C810FA1    68 3810817C     PUSH kernel32.7C811038
7C810FA6    E8 2015FFFF     CALL kernel32.7C8024CB
7C810FAB    8B5D 14         MOV EBX,DWORD PTR SS:[EBP+14]
7C810FAE    33C9            XOR ECX,ECX
7C810FB0    3BD9            CMP EBX,ECX
7C810FB2    74 02           JE SHORT kernel32.7C810FB6
7C810FB4    890B            MOV DWORD PTR DS:[EBX],ECX
7C810FB6    64:A1 18000000  MOV EAX,DWORD PTR FS:[18]

堆栈内容
0012E774   7C352A4C  /CALL 到 WriteFile 来自 MSVCR71.7C352A46
0012E778   000001D8  |hFile = 000001D8 (window)
0012E77C   00F5BCE8  |Buffer = 00F5BCE8
0012E780   000005E7  |nBytesToWrite = 5E7 (1511.)
0012E784   0012E798  |pBytesWritten = 0012E798
0012E788   00000000  \pOverlapped = NULL
0012E78C   0000006C

我在堆栈看到了Buffer = 00F5BCE8 于是在F5BCE8内存处查找,果然找到了未注册的字样,于是把非注册的字样去掉,得到的结果就成功了,没有了水印!!
但是我每次跟踪堆栈Buffer的内容都不一样,我该如何办呢?怎么下断,找到初始赋值的地方呢?不知道此值是何时何处产生的?

肯请大侠们,指点一下!!先谢了

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
关注!!!!!!!!!!!!!!
2006-1-26 22:59
0
雪    币: 172
活跃值: (212)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
有下载地址吗?
2006-1-27 04:00
0
雪    币: 176
活跃值: (100)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
4
中断后返回程序代码,在call WriteFile之前会有push XXXX的语句,也就是把函数需要的参数入栈,可以在那里改
2006-1-27 04:02
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
按照楼上兄弟说的,继续跟,一步步返回

004372A8  |.  68 0CCA6300   PUSH Char.0063CA0C
004372AD  |.  68 14AB6300   PUSH Char.0063AB14
004372B2  |.  8D8D A0FDFFFF LEA ECX,DWORD PTR SS:[EBP-260]
004372B8  |.  E8 53A4FCFF   CALL Char.00401710
004372BD  |.  8BC8          MOV ECX,EAX
004372BF  |.  E8 4CA4FCFF   CALL Char.00401710
004372C4  |.  8B95 94FDFFFF MOV EDX,DWORD PTR SS:[EBP-26C] <=文件大小值
004372CA  |.  52            PUSH EDX
004372CB  |.  8B45 B0       MOV EAX,DWORD PTR SS:[EBP-50] <=文件内容内存地址
004372CE  |.  50            PUSH EAX
004372CF  |.  8D8D A0FDFFFF LEA ECX,DWORD PTR SS:[EBP-260]
004372D5  |.  E8 46790100   CALL Char.0044EC20
004372DA  |.  50            PUSH EAX
004372DB  |.  E8 D0190200   CALL Char.00458CB0 <=这里调用WriteFile
004372E0  |.  83C4 0C       ADD ESP,0C

但是我怎么只修改其中一部分呢?

2006-1-27 09:01
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
自己顶一下,希望大侠出手
2006-1-27 22:46
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
用UE搜索字符串.然后改成0.
2006-1-28 00:35
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我搜过,用UE搜不到的
原文件在这里下载
http://dl.filekicker.com/send/file/157211-8K67/RichChartBuilder-Evaluation.exe
大家可以试试
打个比方说:内存是00CC0000 大小是500 我只改其中00CC430--450之间的数据
要是我改的数据在后面,我可以把值改小点,可是我要改的值在中间

004372BF  |.  E8 4CA4FCFF   CALL Char.00401710
004372C4  |.  8B95 94FDFFFF MOV EDX,DWORD PTR SS:[EBP-26C] <=文件大小值
004372CA  |.  52            PUSH EDX
004372CB  |.  8B45 B0       MOV EAX,DWORD PTR SS:[EBP-50] <=文件内容内存地址
004372CE  |.  50            PUSH EAX
004372CF  |.  8D8D A0FDFFFF LEA ECX,DWORD PTR SS:[EBP-260]
004372D5  |.  E8 46790100   CALL Char.0044EC20
004372DA  |.  50            PUSH EAX
004372DB  |.  E8 D0190200   CALL Char.00458CB0 <=这里调用WriteFile
004372E0  |.  83C4 0C       ADD ESP,0C

2006-1-28 02:16
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
设TextOutW断点.
2006-1-28 08:00
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我按照,TextOutW设断点.没有找出头绪!!!!
我真是笨死了

还忘各位大侠们再指点一二
2006-2-2 00:44
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
11
http://tencent.rosemeet.com/index.htm?QQ=688888&fromid=244410743233
新年喜讯,腾迅为庆贺新年来到,现在开放六位数的QQ号免费申请,数量有限,送完即止
2006-2-3 16:58
0
雪    币: 210
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
如楼主的WriteFile找到Buffer = 00******位置,然后在之前的unicode
<Text处设立内存断点,然后关闭程序,程序释放内存
.text:004B1CD0                 mov     eax, [esp+arg_0]
.text:004B1CD4                 push    eax             ; void *
.text:004B1CD5                 call    ds:free
.text:004B1CDB                 pop     ecx
.text:004B1CDC                 retn
.text:004B1CDC sub_4B1CD0      endp
释放位置应该是004B1CD5
此时查看堆栈:
.text:00407430                 jz      short loc_407444
.text:00407432                 mov     ecx, [ebp+var_30]
.text:00407435                 mov     edx, [ecx+1344h]
.text:0040743B                 push    edx
.text:0040743C                 call    sub_4B1CD0      ; 释放掉那个加密区的内存
.text:00407441                 add     esp, 4
是0040743C处进行调用的
那么IDA全文搜索[ecx+1344h]处
有两个地方
.text:0040836E                 mov     [ecx+1344h], eax
.text:00408374                 push    22Ah
----------
.text:00408443                 mov     edx, [ecx+1344h]
.text:00408449                 push    edx

都是在函数00408459中
调用地点为:
.text:00409728                 push    ecx
.text:00409729                 mov     ecx, [ebp+var_49C]
.text:0040972F                 call    sub_408260
-------------------
将这三句nop掉即可完成
即搜索 51 8B 8D 64 FB FF FF E8 2C EB FF FF
全部替换成 90
当让你也可以用RET方法
-----------------------------
原理,老外写程序很规范,那个类申请内存,一般由当前类释放内存
而内存的指针在一个固定的类中是不变的(一般情况)比如 C... * m_p;
那么编译器编译后为 [ecx+***h] 也是固定的,所以用此方法可快速找到申请的地方
当然如果你遇到[ecx+04h]什么的就需要你花多时间了
这个很容易,只有两个位置用了[ecx+1344h]
BTW,这个用了Flash控件,所以Textout/DrawText都没有用的
IMAC于2006年2月3日
2006-2-3 20:56
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
长知识............
2006-2-3 22:51
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
十分感谢IMac大侠的指点,又学一招!!!
谢谢哦!!!缘分呀!!!
2006-2-5 09:26
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
看眼界了,学习.
2006-2-5 09:48
0
雪    币: 210
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
怎么你的BLOG上就变成原创作者了
【原创】Rich Chart Builder 1.0.128 完全破解汉化版作者:admin 日期:2006-02-04
2006-2-5 10:32
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
呵呵,IMac兄,你没有注意patch的说明?
【注意事项】Rich Chart Builder是本人第一款汉化作品,虽然为此本人也查阅了一些相关资料,但翻译时难免有不当之处,故不能保证全部准确汉化,还望大家在使用过程中批评指正,以臻完善。
在此感谢IMac指点

呵呵,你的方法我还是不会用,我是一行一行的向上找的,每执行一个call就在内存查找一次,终于在一个关键地方找到了关键点改je为jmp水印就没了。感谢你的方法,记住了,以后可以改简单明了。
2006-2-5 13:53
0
雪    币: 210
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
不是我和你争,这个是规矩
你看一下
http://www.e7w8.com/blog/attachments/month_0601/Rich_Chart_Builder_汉化补丁.rar
上的说明
Crack by 深蓝[Free]
我还没说Free呢........另外发布信息也没有啊。
而且你对比一下补丁,就是按照我说的修改的啊
没有你的JE->JMP啊,所以做人要厚道,要不以后谁也不冒泡了
再说,我争这个也没有什么意思
2006-2-5 15:30
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
原因找到了,原来是IMac兄下载的是以前的,故没有看到,怪我没有把旧的删除。希望不要造成误会
2006-2-5 16:49
0
游客
登录 | 注册 方可回帖
返回
//