能力值:
( LV12,RANK:210 )
|
-
-
2 楼
第2点非常简单, 首先使用CreateProcess创建被修改程序的进程并得到句柄,然后就可以用ReadProcessMemory和WriteProcessMemory来读写进程的地址空间了,注意权限
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
要先看目标程序有没有加壳
|
能力值:
( LV12,RANK:210 )
|
-
-
4 楼
这样做就是专门对付加壳程序的,否则直接修改磁盘文件就可以了
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
或者winexec打开程序,然后用findwindow查找程序句并,接着用ReadProcessMemory和WriteProcessMemory来操作代码
|
能力值:
( LV12,RANK:210 )
|
-
-
6 楼
这样做麻烦一点,当然也是可以的,但是如果有特殊要求如运行后中断在入口点上就不行了.
另外FindWindow只能得到窗口句柄,要得到进程句柄还得用GetWindowThreadProcessId得到进程ID然后用OpenProcess函数打开进程得到进程句柄
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
是是,我漏了个OpenProcess
|
能力值:
( LV9,RANK:410 )
|
-
-
8 楼
查查精华。里面好象有
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
http://bbs.pediy.com/showthread.php?threadid=14300
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
谢谢!参考http://bbs.pediy.com/showthread.php?threadid=14300
,对没有加壳的软件已经搞定了。
如果目标软件加了壳该怎么办?直接ReadProcessMemory找不到关键代码,怎么样才能等到壳运行完毕后,再动态修改代码?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
最初由 auser 发布 谢谢!参考http://bbs.pediy.com/showthread.php?threadid=14300 ,对没有加壳的软件已经搞定了。
如果目标软件加了壳该怎么办?直接ReadProcessMemory找不到关键代码,怎么样才能等到壳运行完毕后,再动态修改代码?
一般没有做内存校验的壳,可以读取目标程序某个位置的几个字节,进行比较,如果相等,应该就是已经解壳完毕,否则,等待几十毫秒再试。
http://www.codebreakers-journal.com/
建议上这儿去看看,N篇关于loader的文章,经典,英文的
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
最初由 littlepotato 发布
......,否则,等待几十毫秒再试。
这个时间可能把握不了吧!等待几十毫秒后就发现软件已经检测到未注册,退出了。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
我觉得如下方法可行,就是不知道怎么编码实现。
先用debug(如softice)工具找到程序自动解码完毕,关键代码又没有执行时调用的某个api函数(如GetVersion),然后编程用自己的程序先hook这个api,在hook中判断是否解码完毕,以获取动态修改代码的关键时机。
上面这个方案不知可行否,应该如何编码。(主要是hook api不知道怎么写)
|
|
|