永发信息网

如何修改特征码

答案:1  悬赏:60  手机版
解决时间 2021-05-17 01:58
如何修改特征码
最佳答案

00001B4E: FF25 04210010 JMP [10002104] ;这样好看多了
0000198B: FF15 20210010 CALL [10002120]
00001555: 8B3D 4C210010 MOV EDI,[1000214C]
=======================================================================
=======================================================================
看看我对第一处的修改:
注意看重定位问题
(一般调用输入函数返回时,EAX放返回值,所以可以在压栈之后调用之前放心使用EAX)
  使用EAX做重定位处理。
用OD打开
修改方法如下:
A:找一处空隙:
10001FD0 90 nop
10001FD1 90 nop ;先来两个NOP,防止花指令
10001FD2 E8 00000000 ;这句用二进制编辑,很重要,OD的右键有
;完成后这句指令就变成 call 10001FD7
;接下来
10001FD7 58 pop eax
10001FD8 2D D71F0010 sub eax, 10001FD7 ;这个数对应前面的call
10001FDD 05 04210010 add eax, 10002104 ;这个是函数地址
;对照第一处特征码( 00001B4E: FF25 04210010 JMP [10002104] )
; <&MFC42.#269_AFX_MODULE_STA>
;到这里,函数地址的重定位就完成了
10001FE2 FF20 jmp [eax] ;跳到重定位后的函数入口
B:
把光标移到第一处特征码那一行单击
------------
10001FD0=10001FD0
本地调用来自 10001773
------------
转到10001773处,
10001773 |. E8 D6030000 call 10001B4E
改为
10001773 E8 58080000 call 10001FD0 ;指向刚才空隙中的代码起始
这里只有来自10001773的一处调用,如果有多处调用就要改多处,方法一样
C:
把第一处特征码的代码NOP掉
(实际改变的只是FF25这两个字节,后面的04210010在加载时会被加载器改回来)
niu-cow 2006-06-04
----------------
--------------------------------------------------------------------------
看这个特征码:
0000198B: FF15 20210010 CALL [10002120]
此处有重定位,重定位的范围是0000198d-00001990,即20210010四个字节
这四个字节上不要放指令,会被加载器破坏的,以后NOP掉就是了
看看前后:
10001987 |. FF7424 04 push dword ptr [esp+4] ; /func
1000198B |. FF15 20210010 call [10002120] ; <&MSVCRT._onexit>
10001991 |. 59 pop ecx
第二句没有跳入,可以用万能跳转法
(第一句没关系的,只要没有跳入到“中腰”就行。第三句不改,不用考虑)
从10001987处跳出去吧(万能跳转法),jmp 只要五个字节,改到1000198b,
没有到重定位的地方。
A:
找一处空隙
10001FA0 90 nop ;防止花指令,方便修改
10001FA1 90 nop
10001FA2 FF7424 04 push dword ptr [esp+4] ;原来的指令补回去
10001FA6 E8 00000000 ;二进制编辑
;指令变为 call 10001FAB
10001FAB 58 pop eax
10001FAC 2D AB1F0010 sub eax, 10001FAB ;对应前面的call的地址
;从call开始的这三句构成重定位差
;哪个寄存器空闲就用哪个,call前面一般用eax
10001FB1 05 20210010 add eax,10002120 ; <&MSVCRT._onexit>
;把原来函数的地址加上重定位差
;到这里,函数地址的重定位已经完成了
10001FB6 FF10 call [eax] ;调用函数
10001FB8 ^ E9 D4F9FFFF jmp 10001991 ;返回后跳回到下一句
;不要跳到0000198d-00001990
B:
10001987 /E9 14060000 jmp 10001FA0 ;跳到刚才空隙中代码的起始
1000198C |90 nop
1000198D |90 nop
1000198E |90 nop
1000198F |90 nop
10001990 |90 nop
-------------------------------------
------------------------------------------------------------------------
再看这个
00001555: 8B3D 4C210010 MOV EDI,[1000214C]
此处MOV指令将改变EDI的值,所以等下重定位时也使用EDI,这样最保险
同样不要在00001557-0000155A 改指令,以后NOP掉就是了
同样用OD打开,看看
10001551 |. 8B5424 16 mov edx, [esp+16]
10001555 |. 8B3D 4C210010 mov edi, [1000214C] ;USER32.wsprintfA
第二句没有跳入,这样可以用万能跳转法
A:
找一处空隙
10001F70 90 nop
10001F71 90 nop
10001F72 8B5424 16 mov edx, [esp+16];补指令,老规矩
10001F76 E8 00000000 ;这句不用再说了吧call 10001F7B
10001F7B 5F pop edi ;直接用edi,这是技巧
10001F7C 81EF 7B1F0010 sub edi, 10001F7B
;这样,edi 已经是重定位差了
10001F82 81C7 4C210010 add edi, 1000214C ; <&USER32.wsprintfA>
;edi的值已经重定位了,
;但现在还不行,注意,原来的指令有个方括号,也就是取地址所指的内存的值
;2006-06-09修改时疏忽了    (2006-06-14 修正)
10001F88 8B3F mov edi, [edi]
;跳回到原来的下一句吧(这句也要修正,指令相同但机器码不同)
;同样不要跳到NOP掉的地方,这样保险
10001F8A ^ E9 CCF5FFFF jmp 1000155B
B:
10001551 /E9 1A0A0000 jmp 10001F70 ;这个也不再解释了
10001556 |90 nop
10001557 |90 nop
10001558 |90 nop
10001559 |90 nop
1000155A |90 nop
----------------
----------------------------------------------------------------------------
----------------
好了,总结一下
重定位的方法其实很简单
先求重定位差:
nop ;先来几个nop防止出现花指令
;(这样修改时看得清楚些,或者再放些垃圾指令)
e8 00 00 00 00 ;这句将变为call xxxxxxxx
;用C32ASM看到的地址和OLLYDBG看到的不一样,没关系的,
;看到啥就是啥
pop eax ; 或别的寄存器,一定要空闲
sub eax,xxxxxxxx ;每句之间都可放垃圾指令,只要不破坏现场就行了
然后
add eax,yyyyyyyy ;yyyyyyyy为需要重定位的(原来的)地址值,
;加上前面求出的重定位差
;就完成了重定位
至于重定位之后,该怎么办就怎么办
空隙要足够大,加了垃圾指令需要更大的空隙。
直接寻址的地方会被加载器重定位的,别试图在这些地方修改指令
剩下的就是跳来跳去的问题了,ok


详细不?不过有点累人。。。。。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下半旗是把旗子下降到哪里?
中泰武术比赛,如何可以让中国赢。
怎么样才能让女友的前男友不再骚扰她
化学题 愁死我了!
双峰县娄底中国移动(金蚌店)怎么去啊,谁知道
孩子的听课质量问题
安全生产标语对联,名言接力赛”设计对联古今
雨湖区湘潭沙县小吃在哪里啊,我有事要去这里
空间怎么做啊 !!!!!!!!
孙中山是好人还是坏人,孙中山是哪里人 什么时
谁有经典的冷笑话?
芦淞区株洲桥头排骨(建宁街道店)怎么去啊,谁
3gqq的G币还能充值吗?
索爱W705的播放器出现乱码是什么情况?
买联想笔记本5000左右,哪款比较好
推荐资讯
香坊区哈尔滨优优酸奶吧我想知道这个在什么地
为什么我家电脑这样
粉色的靴子要怎么配衣服
保康县襄樊东北特色烧烤我想知道这个在什么地
武昌区武汉大学医学部7号教学楼这个地址怎么
索爱手机W580i和W850的比较
南岗区哈尔滨理工大学校友之家地址有谁知道?
黄陂区武汉品骏快递怎么去啊,谁知道地址啊
四川广安的电话卡
适合电器开关设计的远程函授电大专业?
武汉哪一家冰点的彩光脱毛技术最好?
高中的选择题是不会告诉你单选还是多选的吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?