能力值:
( LV13,RANK:923 )
|
-
-
2 楼
|
能力值:
( LV2,RANK:10 )
在线值:
|
-
-
3 楼
为什么我的ida没有text:0045C11F这一行,是因为没装什么插件吗
|
能力值:
( LV15,RANK:2663 )
在线值:

|
-
-
4 楼
leaffish
为什么我的ida没有text:0045C11F这一行,是因为没装什么插件吗
这是手动调整了下。
|
能力值:
( LV4,RANK:45 )
在线值:
|
-
-
5 楼
请问能放一下,去花指令的脚本吗
|
能力值:
( LV15,RANK:2663 )
在线值:

|
-
-
6 楼
只是idc.FindBinary和PatchByte之类的简单组合,没有判断指令,只是字节数据搜索加修改。
|
能力值:
( LV15,RANK:2663 )
在线值:

|
-
-
7 楼
HeyLXF
请问能放一下,去花指令的脚本吗
只是idc.FindBinary和PatchByte之类的简单组合,没有判断指令,只是字节数据搜索加修改。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
请问楼主可以把去花指令的脚本发出来学习一下吗,因为刚入门,所以想有个脚本对照着学习更容易理解
|
能力值:
( LV15,RANK:2663 )
在线值:

|
-
-
9 楼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | def scan(patt,start = 0 ,end = 0 ):
pattern = patt
if start:
addr = start
else :
addr = MinEA()
if end:
addr1 = end
else :
addr1 = MaxEA()
l = []
for i in range (addr,addr1):
addr = idc.FindBinary(addr, SEARCH_DOWN|SEARCH_NEXT, pattern)
if addr ! = idc.BADADDR:
l.append(addr)
return l
def patch_nop(l,pos,count):
for addr in l:
for n in xrange (count / 2 ):
PatchWord(addr + pos + 2 * n, 0x9090 )
if count / 2 :
PatchByte(addr + pos + count - 1 , 0x90 )
def search_junk(s,pos,length,name,start = MinEA(),end = MaxEA()):
l = scan(s)
c = len (l)
while c:
patch_nop(l,pos,length)
print "[*]Find %s %d places,and patched." % (name,c)
l = scan(s)
c = len (l)
|
使用就是search_junk('0F 84 07 00 00 00 0F 85 01 00 00 00',0,13,'jzjnz') 此类,并不针对此题。这个只能搜索固定的指令数据,patch成nop 。其它需求可自行修改。
最后于 2018-7-1 00:13
被poyoten编辑
,原因:
|
能力值:
( LV5,RANK:75 )
|
-
-
10 楼
楼主师傅功力深厚,膜拜
|
能力值:
( LV3,RANK:35 )
|
-
-
11 楼
请教一下:如何手动patch,让IDA能F5我不太明白?(IDA玩的不是6) 是要把有花指令的地方都NOP掉,然后把有用的代码拼接到开头吗?为什么会一直弹出来这个?  另外是不是还要编辑_main_0函数的开头和结尾?而且我看到一篇writeup中.idb的_main_0函数还有很多变量是怎么来的?
|
能力值:
( LV15,RANK:2663 )
在线值:

|
-
-
12 楼
如果f5出错,当然是哪有错改哪。放上idb文件。可以自行参照。
最后于 2018-8-5 18:49
被poyoten编辑
,原因:
|
能力值:
( LV15,RANK:2663 )
在线值:

|
-
-
13 楼
xyy吸氧羊
请教一下:如何手动patch,让IDA能F5我不太明白?(IDA玩的不是6)是要把有花指令的地方都NOP掉,然后把有用的代码拼接到开头吗?为什么会一直弹出来这个?另外是不是还要编辑_main_0函数的 ...
有些事情,自己花时间弄明白与别人直接告诉你答案的效果是完全不同的。
|
|
|