能力值:
( LV2,RANK:10 )
|
-
-
2 楼
附加数据只是外部程序补充,一般没有执行代码!最多是一些资源和字符串!
在程序内找到对那些资源的调用代码。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
按楼上朋友的说法,应该去找调用附加字串的代码,我去试试看,感谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
这是我在附加数据段中找到的有用信息,请问各位朋友下一步该如何处理呢??
|
能力值:
(RANK:260 )
|
-
-
5 楼
不知道你从哪里得出结论这里有附加数据段。
OD已经明确指出是.data节。
还有,从数据入手分析是一个不错的主意,但还是要找到访问数据的代码。
你试过OD的超级字符串参考插件了吗??一般程序没有加密的话,用这个插件就可以找到使用字符串的代码位置。
最后的办法,就是实在没有其它办法的话,可以在数据上下数据断点,推荐使用硬件断点。在中断之后,再从堆栈中寻找函数的调用路径,或者CTRL + F9多执行几次,直到返回到所需要的代码位置。
至于哪里是需要注意的位置,这就靠你多多积累了。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
之前我已经将原程序脱壳并将附加数据添加到程序末尾,现在程序能够正常运行了。
OD载入后在字串搜索中找不到任何有用信息,用ultraedit可以搜索到诸如“注册不成功”之类的信息。
目前尝试在数据上下断点,一直没有成功。发这个帖的目的是想看看各位高手有没有成形的好办法,这样就不用走太多弯路了。
|
能力值:
(RANK:260 )
|
-
-
7 楼
脱壳了,这样啊,我误解了。
数据断点只有在数据被访问时会生效。如果你下断点的数据在程序的执行路径中要就不去访问,例如有一条if语句总是假而跳过了访问被下断点的数据,那么这个断点是不会生效的。
一般寻找关键点的方法是使用api断点,消息断点,以及“F12大法”(我起的名字),或者使用专门的分析软件如Dede,VB decompiler等找到相应的函数地址,然后去那里直接下断分析。
直接从数据入手,一般是没有办法的办法。在内存中或文件中暴力搜索数据,一般是字串,然后下内存断点,这样的方法都是没办法的办法
因为内存访问不具有确定性,你无法确定所找到的数据是在什么地方访问的,很多情况下内存断点会断在系统DLL的领空,就是因为程序有可能将变量或指针作为参数来调用系统API,这样内存断点常常会更麻烦而不是更简单。
还有一些程序,采用异步方式访问数据,比如判断注册码错误之后,将一个字串的指针当做参数,发消息给另外的线程,或直接创建新的线程,由另外的线程来显示消息,所以你断下来后,只看到显示消息的代码,而判断正确与否的代码离着十万八千里。
其实多动动脑子,多数程序都可以用API断点来寻找关键点的。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
其实多动动脑子,多数程序都可以用API断点来寻找关键点的。
为这句话而苦恼,
要不动脑子,可能不会来这里,这要发贴问的,
更主要的问题是脑子不知从何动起
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
说的很对啊,回去再去捣鼓捣鼓吧。。
|
|
|