能力值:
( LV2,RANK:10 )
|
-
-
451 楼
还是没搞清楚,那个“3”哪儿去了,
|
能力值:
( LV2,RANK:10 )
|
-
-
452 楼
c++搞定
#include <iostream>
#include <cstdlib>
#include <windows.h>
using namespace std;
int main()
{
unsigned int a=GetDriveTypeA(NULL);
char* b=new char[12];
GetVolumeInformationA(NULL,b,12,NULL,NULL,NULL,NULL,NULL);
int *c=reinterpret_cast<int*>(b);
*c=(*c)/2 * a * (a+1);
*c^=0x797A7553;
cout << hex << uppercase << *c << endl;
cout << dec << *c << endl;
system("pause");
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
453 楼
乘的是eax,结果放在eax里,不够的话高位放在edx中。
|
能力值:
( LV2,RANK:10 )
|
-
-
454 楼
经典教程,功德无量!感谢CCDebuger
|
能力值:
( LV2,RANK:10 )
|
-
-
455 楼
写的很仔细,不错
|
能力值:
( LV2,RANK:10 )
|
-
-
456 楼
入门精典啊,来迟了
|
能力值:
( LV2,RANK:10 )
|
-
-
457 楼
入门经典,篇篇精华,学习必备,下载收藏了,谢谢坛主。
|
能力值:
( LV2,RANK:10 )
|
-
-
458 楼
楼主辛苦了,学习了,精华啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
459 楼
正在跟着楼主的脚步一步一步走过来
|
能力值:
( LV2,RANK:10 )
|
-
-
460 楼
悲剧啊 OD ALT+F9不像楼主说的那样,貌似并没有返回到程序领空啊
|
能力值:
( LV3,RANK:20 )
|
-
-
461 楼
[QUOTE=幻想术士;251501]ccDebuger 是不是改过了程序了
我是最近下的那个题目
00401310 |. 8B35 9C334000 MOV ESI,DWORD PTR DS:[40339C]
而这句的时候 DS:[40339c]=00000000
为什么把ESI的值直接附在了这里?
004014...[/QUOTE]
我也这么认为
00401310 |. 8B35 9C334000 mov esi, dword ptr [0x40339C]
00401316 |. 6A 28 push 0x28
00401318 |. 68 C4334000 push 004033C4
0040131D |. FF35 90314000 push dword ptr [0x403190]
00401323 |. E8 4C010000 call <jmp.&USER32.GetWindowTextA>
00401328 |. E8 A5000000 call 004013D2
0040132D |. 3BC6 cmp eax, esi
cmp之前还有一个call,在这个call里,寄存器esi的值在此处有变化。
00401405 |. 81F6 53757A79 XOR ESI,797A7553
|
能力值:
( LV2,RANK:10 )
|
-
-
462 楼
支持这个系列的 第四了 加油!
|
能力值:
( LV4,RANK:50 )
|
-
-
463 楼
至今也是受益匪浅啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
464 楼
确实是好东西, 楼主辛苦,学习之...
|
能力值:
( LV2,RANK:10 )
|
-
-
465 楼
开始学习逆向!!
|
能力值:
( LV2,RANK:10 )
|
-
-
466 楼
那么好的系列贴原来已经是6年前的事情啦?相见恨晚啊
|
能力值:
( LV2,RANK:10 )
|
-
-
467 楼
谢谢谢谢你 新手学习了
|
能力值:
( LV2,RANK:10 )
|
-
-
468 楼
非常谢谢!!!!!!!!!!!!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
469 楼
写的很好,适合我们这种新手入门
|
能力值:
( LV2,RANK:10 )
|
-
-
470 楼
构思 OllyDbg 2.0 插件的开发,还有 CmdBar 插件的焦点问题的修正和升级。
|
能力值:
( LV2,RANK:10 )
|
-
-
471 楼
菜鸟表示临时还看不懂,有没有简单点的入门教程?
|
能力值:
( LV2,RANK:10 )
|
-
-
472 楼
感谢,新手学习
|
能力值:
( LV2,RANK:10 )
|
-
-
473 楼
太好的入门资料。非常谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
474 楼
win7 64bit上跟着做。数据窗口转到40339C,第二幅图没有显示假码。跟着继续做,内存断点断下之后,看一下数据窗口,还是全0,第一个不是03。删掉内存断点后按Alt+F9,程序居然是单步,按一下Alt+F9就走一条汇编指令。这是什么情况?望高人解答
|
能力值:
( LV2,RANK:10 )
|
-
-
475 楼
自己解决了。首先数据窗口转到40339C,第二幅图没有显示假码的问题,主要是CCDebuger大大说的时候有那么一点点点省略,所以误解了。看图
第三章断下的地方是GetWindowTextA函数,在第四章,CCDebuger大大是这样写的“F9运行来到上面代码所在的地方(你上次设的断点应该没删吧?)”,实际上应该是“按F9之后再按一下F8让GetWindowTextA函数调用完成”。这样才能在数据窗口看到假码。原因也就很容易解释了,GetWindowTextA函数调用完成程序才能拿到我们在文本框输入的假码。
第二个问题是按一下Alt+F9就走一条汇编指令,这是因为Ollydbg对64位系统不兼容。下载Stealth64插件。dll放到Ollydbg的plusin目录里,重启Ollydbg之后打开Stealth64设置,如下图打开设置
见到如下的设置窗口
勾选x64 compatibility mode(x64兼容模式)然后再重启,Alt+F9就能正常返回用户代码领空,而不是变成单步执行。
生生不息,学习不止,遇难而进,遇题而解,今留所学,以怡后人
|
|
|