首页
社区
课程
招聘
[求助]关于dll的动态逆向调试,求指导,求思路
发表于: 2015-6-2 11:28 8296

[求助]关于dll的动态逆向调试,求指导,求思路

2015-6-2 11:28
8296
因为想实现某xy著名软件(即便卸了再装)记录已装过该软件电脑试用时间照旧的功能,
逆向xy后因为软件工程大,逆向无果后,发现一款xy的破解试用时间的abc软件,于是觉得逆向abc破解原理更实在些,可是逆向abc后,发现是abc.exe其实是用远程线程注入一个bbc.dll到xy软件里的,那证明破解原理肯定在bbc.dll里,那问题来了,逆向bbc.dll只能用IDA静态的分析,但是我想知道dll很多函数的输入输出参数的值,只能动态od调试,因为xy软件一运行就要用到bbc.dll里的函数,注入后运行用od附加,明显时机已过,曾试过挂起进程注入后,od附加再恢复进程的办法,但是od总提示附加失败(XP系统),Win7系统od打开进程界面没显示挂起注入的进程的,现在想问下大牛们动态调试dll的办法,谢谢了!


简洁讲诉一下,    目的:动态分析注入xy.exe的bbc.dll      破解软件abc.exe作用:   是创建进程xy.exe挂起,注入bbc.dll后恢复xy.exe 运行     我遇到的调试难点:是由于xy.exe界面UI没生成就运行dll里的函数了,等UI界面生成再附加的话,运行的功能已经完成,dll运行完了,时机已过

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 39
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
希望有懂的人路过,指导一下~
2015-6-2 14:12
0
雪    币: 81
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
难道xy不能直接用od启动么0.0,一定要附加?
2015-6-2 16:03
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
当在OD里面,调试器暂停在程序入口的时候,此时DLL加载没有?如果没有,我觉得可以对LoadLibrary下个断点试试。
2015-6-2 16:04
0
雪    币: 39
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
od启动?那bbc.dll怎么加载进来分析?
2015-6-2 21:57
0
雪    币: 39
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
怎么让od停在入口地址, 流程是: abc.exe 创建进程xy.exe挂起,注入bbc.dll后恢复xy.exe 运行
我的主要目的是 分析bbc.dll
2015-6-2 22:01
0
雪    币: 39
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好像上面两位大牛没明白我的意思,   我在这里再简洁讲诉一下,    目的:动态分析注入xy.exe的bbc.dll      破解软件abc.exe作用:   是创建进程xy.exe挂起,注入bbc.dll后恢复xy.exe 运行     我遇到的调试难点:是由于xy.exe界面UI没生成就运行dll里的函数了,等UI界面生成再附加的话,运行的功能已经完成,dll运行完了,时机已过
2015-6-2 22:14
0
雪    币: 86
活跃值: (2450)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
直接从DllMain分析就行了,想调试,修改DllMain入口第一个字节为int 3,程序运行挂掉点调试,之前再修改回去。
2015-6-2 22:24
0
雪    币: 39
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
.text:5F431B20 hinstDLL        = dword ptr  4
.text:5F431B20 fdwReason       = dword ptr  8
.text:5F431B20 lpvReserved     = dword ptr  0Ch
.text:5F431B20
.text:5F431B20                 mov     eax, [esp+fdwReason]
.text:5F431B24                 sub     eax, 1
.text:5F431B27                 jnz     short loc_5F431B32
.text:5F431B29                 mov     eax, [esp+hinstDLL]
.text:5F431B2D                 mov     dword_5F436098, eax
.text:5F431B32
.text:5F431B32 loc_5F431B32:                           ; CODE XREF: DllMain(x,x,x)+7j
.text:5F431B32                 mov     eax, 1
.text:5F431B37                 retn    0Ch
.text:5F431B37 _DllMain@12     endp

改  5F431B20       mov     eax, [esp+fdwReason] 为int 3?
2015-6-2 22:46
0
雪    币: 81
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
远程线程注入dll的话可以在od里设置新线程中断,也可以对LoadLibrary下断
2015-6-3 08:09
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
bp LoadLibraryA(W),对于动态加载的DLL,这个方法不知道是不是最好的。
2015-6-5 18:36
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
额,楼主是说,abc.exe以CreateProcess的方式启动进程xy.exe,但是xy.exe还没有界面,然后dll就被调用了。意思是需要在xy.exe中下断点。。嗯,应该是这样。我之前在分析一个游戏读取地图资源的时候也遇到过这样的问题。解决办法是先对创建进程的API下断点,此时子进程已经起来了,再开启一个调试,再来附加这个子进程,然后对对应的API下断点即可(CreateProcess返回之前,其实子进程的环境已经准备好了,所以这个时候,可以附加了)个人愚见,希望对楼主有用。
2015-6-5 18:41
0
雪    币: 39
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我刚开始是像你这么做的,createprocess下断,od附加子进程提示 附加失败的 试了很多次都这样,不过,你很能理解我的意思
2015-6-5 18:53
0
雪    币: 13
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
很高深的话题
2015-8-3 12:54
0
雪    币: 2717
活跃值: (2161)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
在abc创建xy后,在注入dll前下个断点。走到断点时,用另一个od附加xy进程试试看。
2015-8-8 19:25
0
雪    币: 8
活跃值: (190)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
感觉是跟11平台启动魔兽方式差不多。。启动、挂起、挂钩、注入、恢复。。。。
2015-8-9 01:41
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我觉得我帮不了你,但是很支持你这种精神
2015-8-9 09:53
0
雪    币: 79
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
楼主解决了吗 同求调试方法
2015-9-16 16:13
0
游客
登录 | 注册 方可回帖
返回
//