Win2000下汇编级调试程序的一些问题 你可以使用wdasm89,可以静态反汇编,一切表露无疑。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对了,softice还是在98中使用的好,而且你的版本也该升级了。 哪里有的下?SoftICE的最新版是多少?什么地方有? SoftICE 4.0 ,现在虽然我已经把那个2000的系统文件成功替换了,但SoftICE的使用还是有问题。用VC调是好像很难实现函数调用的跟踪。 嗯,是呀,我是想问s-ice出问题了不能跟系统函数么? 我用的是2000 Adv Server , SoftICE运行之后,一执行Load Symbols就黑屏,然后显示器的灯乱闪,就象是装Linux时显示器没有配置好的情形。但我选的是Standard VGA,改了几个驱动还是不行 :( :( 我没在2000下用过s-ice,我看当务之急还是想办法在2000下调好sice,到时候别忘了告诉我一声呀,呵呵~~我不想拿我的机子做实验 *_^ To: singlerace 我要调的程序是发行版的执行文件,当然也没有源码。如何确定一个系统函数掉的入口地址呢?如果能确定DLL的加载地址也可以 没搞头喽~呵呵~系统DLL加载位置一般都不会变,我刚才用VC调了一下,[email protected]的位置和用eXescope看到的是一样的,那样user32.dll其他func也就都一样,你再试试看。 eXescope ??什么东东?没听过,别说是VC带的工具哦……否则我会跳楼的 所有的win32s程序调用系统函数都是同一个入口,仔细研究文件头你会有所发现的 但是我如何确定某一个函数的入口呢?32位程序每个进程的内存空间独立,这个我也知道,但有些事还是不太明白。Depends下面有一个Base Address,为什么这个地址加上上面的函数偏址不是函数入口? 偶昏...eXescope不知道?我用depends看了一下,base addr+entry addr是等于实际地址,我不知道怎么会有问题,除非dll被重定位,而对于系统dll,这种可能性很小,但都有.reloc表,就存在这种可能,如果真的,那就恭喜你了,呵呵~能不能告诉我你跟踪的详细方法和步骤?BTW:jsyou说的"所有系统函数"同一入口是什么意思?能否详细说明一下?谢谢~ 我还是把目的说一下吧。我想Crack一个程序,程序的序列号是存放在注册表中,用Depends察看程序,发现有一个对RegOpenKeyA的调用,所以我想气球序列号的运算一定就在后面,但我现在无法确定RegOpenKeyA的入口地址。刚才我试了一下,USER32.DLL中的EndDialog可以正确定位,但RegOpenKeyA还是不行,那个地址一看就不是函数的入口。 那一行的语句为mov edx,dword ptr [esp+0Ch]这好象不应该是一个函数入口,而且我无法在这个地方设断点,这不是有效地址。可能也不该是这么算的,否则Depends右上方的Entry Point也不该是Not Bound .Depends的帮助说这个地址是载加载动态库时才定的。 不过那条语句是对的0x77d983fa: mov edx,dword ptr [esp+0Ch]0x77d983fe: test edx,edx0x77d98400: je 77dc4402.....你用VC写一条RegOpenKey跟进去看看就知道了dll地址很有可能变,但系统dll一般是固定的,这在ms设计os的时候已经考虑好了。 我自己的程序中倒是停到那里了,但为什么我要跟踪的程序就不行呢!!!那是一个屏保程序,它明明使用了RegOpenKeyA,但为什么说那个地址无效呢!!真搞不懂 :( 大家再想一想,过两天给分 有点怪,如果没有进入调用倒是正常,为什么地址无效?是VC的debug说地址无效么?我自己写一个程序,用RegOpenKey,debug release的exe文件,都可以进入那个调用,看来先要弄明白屏保的特殊之处。你能不能跟进那个程序其他的系统dll调用? 是VC的debug说地址无效!!我可以跟进EndDialog调用刚才我有想了想,难道是这个程序人工加载ADVAPI32.DLL的?手工加载和自动加载有区别吗? 手工加载位置也不变,没什么区别,编译后都是在import表里指明。 喂!我说Searph,怎么不回答了? faint~~你怎么不给我发mail呀~~我试过了,手工加载位置一样~~ I faint twice^99 !!!哪个东西我早都发过去了,难道你没收到那个程序!!我再发一次! 我刚刚收到,我看到有个傻小子给我一个exe,以为是当我菜鸟给我木马,你都不注明是干吗用的,嘿嘿~~ 哪个贴子?什么书?我脑子memory少,过去就忘,在这儿告诉我吧~~~:) 哦~~我只有一本高级编程,核心是从网上down的,呵呵~~不过这儿有卖的,把你的地址mail给我吧,钱不要了,给我个3、5000分就可以了~~嘿嘿~~:) 我调试了,根本没有调用RegOpenKeyA嘛~~呵呵~~再说了,你要看基址,在debug菜单里面不是有嘛~~:)它调用了RegCreateKeyExA(0x77d98f62)、RegQueryValueExA(0x77d9858e)、RegCloseKey(0x77d97d4d),这三个都正确跟踪,说明跟踪没有错误,唯一的解释就是它用的是RegCreateKeyExA而不是RegOpenKeyA来打开注册表键的,你跟踪这三个就可以了,我就不管了~~:)另外,刚开始的提示信息说breakpoint无效应该是在调用DbgBreakPoint(ntdll.dll)之前,你不要管它,按F10之后把所有的breakpoint重新enable就可以了。 难道是Depends骗俺???那小子说调用这个函数了,真是岂有此理,回头找他算账去!!!我的信想你敢说不知道?[email protected],给你发过两次信了!!贴子再放一天,明天加分。290分加到你头上,天哪…… 没有骗你,我看过那个scr文件的import表,确实有这个引用,只是在开始运行的时候没有用而已。BTW:俺说的是给你寄书的地址,把那个地址给我呀,不然怎么邮给你?另外谢谢你的分了,嘿嘿~~:) 广东省惠州市鹅岭南路六号TCL工业大厦5楼信息管理部 白永亮 516001谢了先!对了,RMB多少?我寄钱。 钱我不要了,有空请我吃饭吧,嘿嘿~~(BTW:可能不会很快给你,我要到周末才有时间买书) 嘿嘿……你好阴险,真不是陷俺于不仁不义之地吗?如果不给钱以后道上就没人帮俺买书喽……你还是说一下吧,发E-Mail也可以,说不定以后还要烦劳老兄了 faint....被你看穿,连小孩子都骗不了~~真是长江后浪推前浪,前浪死在沙滩上~~:(我先给你寄了再说吧,说不定哪天memory溢出我把这事都忘了~~~ 好久没来看了。我在winnt4.0下试了softice for nt,怎么一按f5就死机?我是用manual启动softice的。loadsymbol花屏主要是驱动的问题,以前也遇过,后来升级了版本,支持了我的新显卡后就没事了(而且竟然用哪个驱动都行?!!!)你用softice跟踪windows的dll看注册码?怎么可能!这个东东还是换用注册表监视程序来好。不然会死得很惨的。 对了,注册码是在写入注册表前就被算出来的,一定不在调用注册表api时,所以不要去看什么RegCreateKey什么的了。 嘿嘿……小弟只是想看看能不能那些crack程序是不是这么做的另外,我觉得在算注册码前程序肯定要先读注册表,因为注册码是根据用户名算出来的,所以只要跟踪到读用户名的地方,下一步一定就开算了。除非……那家伙变态,读完用户名再跳来跳去,有意让人晕。不过这些在将来做共享软件时一定要注意,说不定管用,嘿嘿…… 用C写几行代码,你看汇编都会头昏的,除非你很清楚它的架构,嘿嘿~~你要做共享软件我一定出crack :) 呵呵……其实我就没打算要把那个算注册码的汇编代码搞清楚,我还没那么疯,我只是想把那段函数代码拷下来,加到一个简单的对话框程序里,不就成注册机了?可能是我想的太简单了。另外,如果你来crack我的共享软件,那你也真是太~~~~没品味了。小弟的程序还没被人crack就当掉了,所以你们crack起来会很麻烦的,嘿嘿…… oooOOOooo~~原来如此,你也算是另辟蹊径呀~~小弟不必担心,我除了出一个crack外,另送一个path,呵呵~~ 请教:这样的界面是如何实现的 各位高手,小弟求解一个【绘图问题】~~~~~~~~~~ 使用ado出现错误 两个ADO的问题。Up有分!!!!!!!!!!!!!!!!!!!!!!!!!! RegisterWindowMessage()中()里是什么东西,有什么用? 一个链接问题,一般该如何解决? 为什么窗口刷新时,文本消失了?急急急! 老是看到Q1345,QXXXXX什么之类的东西,这是代表什么? vc里面使用如何open函数?? 关于文件的问题。 关于使用HTTP穿过需要验证的代理服务器下载文件或发送请求的问题。。。急。。。 紧急救援
我用depends看了一下,base addr+entry addr是等于实际地址,我不知道怎么会有问题,除非dll被重定位,而对于系统dll,这种可能性很小,但都有.reloc表,就存在这种可能,如果真的,那就恭喜你了,呵呵~
能不能告诉我你跟踪的详细方法和步骤?
BTW:jsyou说的"所有系统函数"同一入口是什么意思?能否详细说明一下?谢谢~
我想Crack一个程序,程序的序列号是存放在注册表中,用Depends察看程序,发现有一个对RegOpenKeyA的调用,所以我想气球序列号的运算一定就在后面,但我现在无法确定RegOpenKeyA的入口地址。
刚才我试了一下,USER32.DLL中的EndDialog可以正确定位,但RegOpenKeyA还是不行,那个地址一看就不是函数的入口。
mov edx,dword ptr [esp+0Ch]
这好象不应该是一个函数入口,而且我无法在这个地方设断点,这不是有效地址。可能也不该是这么算的,否则Depends右上方的Entry Point也不该是Not Bound .Depends的帮助说这个地址是载加载动态库时才定的。
0x77d983fa: mov edx,dword ptr [esp+0Ch]
0x77d983fe: test edx,edx
0x77d98400: je 77dc4402
.....
你用VC写一条RegOpenKey跟进去看看就知道了
dll地址很有可能变,但系统dll一般是固定的,这在ms设计os的时候已经考虑好了。
大家再想一想,过两天给分
我自己写一个程序,用RegOpenKey,debug release的exe文件,都可以进入那个调用,看来先要弄明白屏保的特殊之处。
你能不能跟进那个程序其他的系统dll调用?
我可以跟进EndDialog调用
刚才我有想了想,难道是这个程序人工加载ADVAPI32.DLL的?手工加载和自动加载有区别吗?
哪个东西我早都发过去了,难道你没收到那个程序!!我再发一次!
它调用了RegCreateKeyExA(0x77d98f62)、RegQueryValueExA(0x77d9858e)、RegCloseKey(0x77d97d4d),这三个都正确跟踪,说明跟踪没有错误,唯一的解释就是它用的是RegCreateKeyExA而不是RegOpenKeyA来打开注册表键的,你跟踪这三个就可以了,我就不管了~~:)
另外,刚开始的提示信息说breakpoint无效应该是在调用DbgBreakPoint(ntdll.dll)之前,你不要管它,按F10之后把所有的breakpoint重新enable就可以了。
BTW:俺说的是给你寄书的地址,把那个地址给我呀,不然怎么邮给你?另外谢谢你的分了,嘿嘿~~:)
谢了先!
对了,RMB多少?我寄钱。
(BTW:可能不会很快给你,我要到周末才有时间买书)
我先给你寄了再说吧,说不定哪天memory溢出我把这事都忘了~~~
我在winnt4.0下试了softice for nt,怎么一按f5就死机?我是用manual启动softice的。
loadsymbol花屏主要是驱动的问题,以前也遇过,后来升级了版本,支持了我的新显卡后就没事了(而且竟然用哪个驱动都行?!!!)你用softice跟踪windows的dll看注册码?怎么可能!这个东东还是换用注册表监视程序来好。不然会死得很惨的。
另外,我觉得在算注册码前程序肯定要先读注册表,因为注册码是根据用户名算出来的,所以只要跟踪到读用户名的地方,下一步一定就开算了。除非……那家伙变态,读完用户名再跳来跳去,有意让人晕。不过这些在将来做共享软件时一定要注意,说不定管用,嘿嘿……
另外,如果你来crack我的共享软件,那你也真是太~~~~没品味了。小弟的程序还没被人crack就当掉了,所以你们crack起来会很麻烦的,嘿嘿……
小弟不必担心,我除了出一个crack外,另送一个path,呵呵~~