能力值:
( LV6,RANK:90 )
|
-
-
51 楼
不错听积极
想起我的当年 我也来凑凑热闹
BOOL GetPassword(LPWSTR lpszUser,LPWSTR lpszPass,DWORD& dwLen)
{
BOOL bResult=FALSE;
WCHAR wPass[MAX_PATH]={0};
int wTemp1=NULL;
int wTemp2=NULL;
int dwTemp3=0;
int i=0;
if (lpszUser==NULL||wcslen(lpszUser)>50||wcslen(lpszUser)==NULL)
{
goto Finally;
}
while (lpszUser[i]!=NULL)
{
wTemp1=lpszUser[i];
wTemp2=wTemp1;
wTemp1=wTemp1<<4;
wTemp2=wTemp2>>5;
wTemp1=wTemp1^wTemp2;
wTemp1=wTemp1+0x26;
wTemp1=wTemp1^dwTemp3;
dwTemp3=dwTemp3+wTemp1;
i++;
}
wTemp1=0xC0DEF-dwTemp3;
wTemp1=wTemp1*wTemp1;
wnsprintfW(wPass,MAX_PATH,L"CM2-%lX-%lX",dwTemp3,wTemp1);
if (wcslen(wPass)>dwLen)
{
dwLen=wcslen(wPass);
goto Finally;
}
wcsncpy(lpszPass,wPass,dwLen);
bResult=TRUE;
Finally:
return bResult;
}
|
能力值:
( LV6,RANK:90 )
|
-
-
52 楼
建议 楼主 努力学习编程吧
别给大部分时间用在这里
编程 在很大程度上 决定你逆向的水准
|
能力值:
( LV2,RANK:10 )
|
-
-
53 楼
哥哥,你够暴力!
|
能力值:
( LV2,RANK:10 )
|
-
-
54 楼
保重身体啊,从你的帖子里能学到很多东西,希望LZ能坚持 ,支持你!!!
|
能力值:
( LV9,RANK:140 )
|
-
-
55 楼
[QUOTE=elianmeng;1030495]不错听积极
想起我的当年 我也来凑凑热闹
BOOL GetPassword(LPWSTR lpszUser,LPWSTR lpszPass,DWORD& dwLen)
{
BOOL bResult=FALSE;
WCHAR wPass[MAX_PATH]={0};
int wT...[/QUOTE]
呵呵,谢谢关注,不管值得与否,趁年轻,多疯狂几下也不错
|
能力值:
( LV9,RANK:140 )
|
-
-
56 楼
恩,谢谢提醒,本人并不准备在这个行业多深入进去,只是业余爱好而已,学习了也有很多年了,至今仍在门外,所以写一些感想、经验给准备入门的同学们,给希望在这个领域发展的同学们指个路
|
能力值:
( LV9,RANK:140 )
|
-
-
57 楼
呵呵,年轻嘛,身体还是没问题的,我尽量坚持把这一系列教程做完
|
能力值:
( LV2,RANK:10 )
|
-
-
58 楼
谢谢楼主。。。看懂了。。。楼主,顶一下你。。。。不过想看你下一个贴
|
能力值:
( LV2,RANK:10 )
|
-
-
59 楼
郁闷啊,照着楼主的一步步做,可是还是没有结果。
有两个地方和楼主的不同
第一:楼主说这个用ollydbg加载后f8会出现一个对话框,可是我怎么没出现?只是出现了整个程序的运行画面。
第二:最后设置断点后f9调试,没有出现注册码。
ps,这个注册码出现的地方楼主没有说清楚,我还是参考8楼的才知道在右下角找
|
能力值:
( LV2,RANK:10 )
|
-
-
60 楼
刚才试了一下,可能就是ollydbg版本的问题吧,的一个我用的看雪上的,第二个用的caopeng汉化的,
只有后者出现了对话框
|
能力值:
( LV9,RANK:140 )
|
-
-
61 楼
恩,有很多人反映你说的这个问题了,就是OD载入后能够运行程序的主功能,我目前还不清楚是什么情况,我的OD是1.10版的,只会出现那个what the hell....那个对话框。
后面一个问题是这样的,你在lstrcmpA这个函数上下断点以后,F9运行,输入name 和serial后,点击check,程序被断下来以后,在反汇编窗口和右下角的堆栈窗口都是可以看到那个serial的,用心看看吧
|
能力值:
( LV2,RANK:10 )
|
-
-
62 楼
调戏人得语句下面就是一个GetModuleHandleA 此乃真调戏
可以把该死的声音NOP了004011B2 |. E8 BE020000 CALL crackme2.00401475
|
能力值:
( LV9,RANK:140 )
|
-
-
63 楼
呵呵,赤裸裸的调戏!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
64 楼
我按照LZ的做法,设置断点之后,点击check之后, crackmea就卡了, 而且在OD的右边没看到注册码,这是怎么回事?
|
能力值:
( LV2,RANK:10 )
|
-
-
65 楼
[QUOTE=elianmeng;1030495]不错听积极
想起我的当年 我也来凑凑热闹
BOOL GetPassword(LPWSTR lpszUser,LPWSTR lpszPass,DWORD& dwLen)
{
BOOL bResult=FALSE;
WCHAR wPass[MAX_PATH]={0};
int wT...[/QUOTE]
这个貌似能看懂一部分。呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
66 楼
搜索OD无意看见楼主的贴子,好有热情。也作为年轻人的我有句话我很是同意,趁年轻就要多折腾折腾,
|
能力值:
( LV2,RANK:10 )
|
-
-
67 楼
什么时候开新课啊楼主
|
能力值:
( LV9,RANK:140 )
|
-
-
68 楼
呵呵,今晚吧,我开始懒了,没有动力啊,童鞋
|
能力值:
( LV2,RANK:10 )
|
-
-
69 楼
楼主,我按你下断点的方法做好一切后,程序被拦下,但是按F7不起做用,所有的铵键都不起做用,就像死机了一样,是怎么回事?假如我下了一个断点不起做用,我怎么能看到程序运行到了那个位置呀!谢谢回答!
|
能力值:
( LV9,RANK:140 )
|
-
-
70 楼
额,你确定你的做法是完全按照我的路子走的?教程里没有F7啊,只是找到lstrcmp函数后下断,然后F9运行,程序就会停在lstrcmp这个函数上,然后从反汇编窗口就可以看到注册码了,不知道你是怎么操作的。
关于第二个问题,windows程序都是基于消息循环的,如果你没有下断点,你的所有操作都会被套进消息循环这个死循环,你是没有办法知道他到底运行到哪一条语句的,若可以,你可以在关键语句上下断点,这样的话每次执行到那句,就会停下来。若是你下了断点那句始终没有执行,那抱歉,你也不会捕捉到程序运行到哪句的
|
能力值:
( LV9,RANK:140 )
|
-
-
71 楼
在OD里面程序没有停在断点那句?卡了的话就应该是程序被断了的迹象啊
|
能力值:
( LV2,RANK:10 )
|
-
-
72 楼
你是?月之精灵
|
能力值:
( LV2,RANK:10 )
|
-
-
73 楼
为什么我这步只有这一行,没有出现你说的那两行?
[IMG] [/IMG]
|
能力值:
( LV9,RANK:140 )
|
-
-
74 楼
[QUOTE=天涯无爱;1053569]为什么我这步只有这一行,没有出现你说的那两行?
[IMG] [/IMG][/QUOTE]
额,理论上讲只要调用了函数的地方就应该有个CALL啊,你这个我也不值得是什么情况,知道的大虾请指教
|
能力值:
( LV2,RANK:10 )
|
-
-
75 楼
这就很奇怪了啊~继续探讨~~
另:我遇到一个程序,反破解的?开了OD,再开那个程序,就直接不能运行。。像这种的,怎么弄?能告诉个头绪么?
|
|
|