首页
社区
课程
招聘
[旧帖] [求助]OD 替换代码问题,求教高手! 0.00雪花
发表于: 2009-8-12 04:24 3859

[旧帖] [求助]OD 替换代码问题,求教高手! 0.00雪花

2009-8-12 04:24
3859
0061250D  |.  53            PUSH EBX
0061250E  |.  55            PUSH EBP
0061250F  |.  56            PUSH ESI
00612510  |.  57            PUSH EDI
00612511  |.  8BD9          MOV EBX,ECX
00612513  |.  68 14B18C00   PUSH elementc.008CB114                   ; /rb
00612518  |.  50            PUSH EAX                                 ; |path
00612519  |.  895C24 1C     MOV DWORD PTR SS:[ESP+1C],EBX            ; |
0061251D  |.  FF15 F4D38500 CALL DWORD PTR DS:[<&MSVCRT.fopen>]      ; \fopen
00612523  |.  8BF0          MOV ESI,EAX
00612525  |.  83C4 08       ADD ESP,8
00612528      85F6          TEST ESI,ESI
0061252A      75 10         JNZ SHORT elementc.0061253C
0061252C      5F            POP EDI
0061252D      5E            POP ESI
0061252E      5D            POP EBP
0061252F      83C8 FF       OR EAX,FFFFFFFF
00612532      5B            POP EBX
00612533      81C4 4C0A0000 ADD ESP,0A4C
00612539      C2 0400       RETN 4

0061253C      8B3D 8CD48500 MOV EDI,DWORD PTR DS:[<&MSVCRT.fread>]   ;  MSVCRT.fread
00612542      56            PUSH ESI
00612543      6A 01         PUSH 1
00612545      8D4C24 28     LEA ECX,DWORD PTR SS:[ESP+28]
00612549      6A 04         PUSH 4
0061254B      51            PUSH ECX
0061254C      C74424 30 000>MOV DWORD PTR SS:[ESP+30],0
00612554      FFD7          CALL EDI
00612556      8B4424 30     MOV EAX,DWORD PTR SS:[ESP+30]            ;  (初始 cpu 选择)
0061255A      83C4 10       ADD ESP,10

如上图,我想把红色区域的代码替换成 打开文件后fseek一个数值,可以实现吗?请高手给出代码,我刚学,不大懂。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
红色区域?

你要替换当然可以啊,注意堆栈平衡
2009-8-12 07:58
0
雪    币: 192
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能给出代码吗?我只会用OD跟算法,不会改。
2009-8-12 13:25
0
雪    币: 162
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
1.先在code段找一段空白处,比如PEID就可以找 假设为00622542
2.
修改2个地方:
(1)0061252C :
pushad
jmp 00622542

(2)00622542:
push 0             --从文件头开始移动
push 20          --移动32字节(这里20是16进制)
push esi         --要操作的文件
call DWORD PTR DS:[<&MSVCRT.fseek>]         --这里的fseek要替换成你的工程的fseek导入地址
add esp,0c
popad

下面是还原被改动的代码:
POP EDI
POP ESI
POP EBP
OR EAX,FFFFFFFF
POP EBX
jmp 00612533     --返回
2009-8-12 15:25
0
雪    币: 33
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
强人啊~~ 学习
2009-8-12 16:06
0
游客
登录 | 注册 方可回帖
返回
//