首页
社区
课程
招聘
[求助]ida代码修改请教
2011-10-19 22:36 25437

[求助]ida代码修改请教

2011-10-19 22:36
25437
ida代码修改请教

用od调试了一个32位的软件
之后再用ida同启相同的64位软件,要修改暴破点

以前我都是用ida查找到暴破点
再用ultraedit这软件以二进制方式修改代码
例如74改为75

己知暴破点代码为
mov     [r9-10h], r15b
二进制为45 88 79 F0

想要修改成
mov     [r9-10h], 1
二进制该如何修改??

因为我只会用ultraedit来修改64位的dll

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (18)
雪    币: 102
活跃值: (85)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
moonflow 2 2011-10-19 23:45
2
0
IDA   cfg 目录下-> idagui.cfg ,把DISPLAY_PATCH_SUBMENU    = NO  修改这个 NO 为 YES
这样在编辑菜单下会多出一个 PATCH Program 的选项,然后就可以用里头的assemble来修改了
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2011-10-20 07:38
3
0
IDB 是数据库,与 可执行文件无关,楼上修改的只是 “数据库”
雪    币: 260
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
droiyan 2011-10-20 09:34
4
0
楼上正解,IDA分析修改完全与原程序无关,只与它生成的数据库有关。
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
星期七 2011-10-20 16:32
5
0
可以用2楼的方法,但最后还要将结果保存为dif文件,这个文件里面存放着 位置+修改数据,自己再实现一个小工具去批量修改,并不难。
雪    币: 270
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
邓韬 9 2011-10-20 16:37
6
0
用OD修改吧,找到代码位置
雪    币: 210
活跃值: (644)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hiber 2011-10-20 20:22
7
0
好像新的6.2中可以支持patch到原始文件(由于ida中保存了相关数据在原文件中的偏移,因而要做patch应该不难)

或者输出diff文件,手动修改
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-23 21:30
8
0
6楼的朋友
这dll档是64位的
而且这是个外挂软件
单load这个dll
od是load不来的
所以才改用ida啊
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-23 21:31
9
0
ida的dif生成后如何修改
因为我不会用ida
只会用来查找64位和32位的相对位址
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2011-10-24 09:23
10
0
找到对应位置,UE 等都可以的吧
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-24 10:06
11
0
ue我有找到相对应位址
只是我不知道
mov     [r9-10h], 1
二进制该如何修改??
雪    币: 2132
活跃值: (363)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
疯子 4 2011-10-24 11:33
12
0
如果byte ptr [r9-10h]为0的话,可以使用
41 FE 41 F0       inc     byte ptr [r9-10h]
刚好4byte

如果没有上下文可利用的
41 C6 41 F0 01    mov     byte ptr [r9-10h], 1
不过5byte,需要patch下
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2011-10-24 11:56
13
0
可以在 IDA 里,修改后查找对应机器码,记下,然后回到 UE 里写入啊
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-24 12:59
14
0
[QUOTE=疯子;1012723]如果byte ptr [r9-10h]为0的话,可以使用
41 FE 41 F0       inc     byte ptr [r9-10h]
刚好4byte

如果没有上下文可利用的
41 C6 41 F0 01    mov     byte ptr [r9-10h], 1
不过5byte,需...[/QUOTE]

能否请教
inc     byte ptr [r9-10h]
解释其意思
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-24 13:00
15
0
原始码为
mov     [r9-10h], r15b
二进制为
45 88 79 F0 48 8D 3D 10 F8 00 00 48 8B F0 B9 07
修改为
mov     [r9-10h], 1
二进制一样为
45 88 79 F0 48 8D 3D 10 F8 00 00 48 8B F0 B9 07
是我的方法不对吗
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-24 13:50
16
0
请问有什么调试器能和OD一样
直接看到代码是
mov     cl,al
而不是
mov     [r9-10h], r15b
最好还能如od一样可以直接修改存档
因为od单开不了这类型软件的dll档
雪    币: 451
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Pan88168 2011-10-26 05:58
17
0
[QUOTE=疯子;1012723]如果byte ptr [r9-10h]为0的话,可以使用
41 FE 41 F0       刚好4byte

如果没有上下文可利用的
41 C6 41 F0 01    mov     byte ptr [r9-10h], 1
不过5byte,需...[/QUOTE]

这个流程只到这里一次吗?  如果只执行到这里一次.当我没说..

如果是,
inc     byte ptr [r9-10h]  //每次加1.

mov     byte ptr [r9-10h], 1 //固定为1.
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-26 07:49
18
0
[QUOTE=Pan88168;1013369]这个流程只到这里一次吗?  如果只执行到这里一次.当我没说..

如果是,
inc     byte ptr [r9-10h]  //每次加1.

mov     byte ptr [r9-10h], 1 //固定为1.[/QUOTE]

这里固定为1
为1表示有license
为0表示无licnese
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vagary 2011-10-26 07:50
19
0
无意间翻到c32asm
这软件符合我的需要
可单开这怪怪的64位dll
又可直接编修
游客
登录 | 注册 方可回帖
返回