能力值:
(RANK:410 )
|
-
-
2 楼
第一个学习。
|
能力值:
( LV13,RANK:970 )
|
-
-
3 楼
学习!
|
能力值:
(RANK:460 )
|
-
-
4 楼
学习!
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
学习
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
还是学习
|
能力值:
( LV9,RANK:850 )
|
-
-
7 楼
对于好文是不顶不行了
|
能力值:
( LV9,RANK:650 )
|
-
-
8 楼
我说我第二个学习呢,没想到看完了,一下到了第八楼了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
支持,学习中!
|
能力值:
( LV9,RANK:210 )
|
-
-
10 楼
学习并不断成长ing.............
|
能力值:
(RANK:10 )
|
-
-
11 楼
好文不断~
|
能力值:
( LV9,RANK:1250 )
|
-
-
12 楼
看完后有一种茅塞顿开的感觉。
坛主的这篇文章真是及时雨。
谢谢!
|
能力值:
( LV6,RANK:90 )
|
-
-
13 楼
收藏!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
老大的文章每次都有一种里程碑似的指导意义,学习了。
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
此时EAX=1,结合源码及ASProtect帮助文档,可以猜出这个是GetRegistrationInformation。
用这种方法就可确定其他几个函数:
都用猜来判断下面的API吗?
|
能力值:
(RANK:350 )
|
-
-
16 楼
最初由 血草 发布
都用猜来判断下面的API吗?
经验很重要,根据参数及返回值来判断。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
|
能力值:
( LV9,RANK:250 )
|
-
-
18 楼
最初由 kanxue 发布 经验很重要,根据参数及返回值来判断。
做个通用版本的api ida签名,也许更容易些。
|
能力值:
( LV3,RANK:20 )
|
-
-
19 楼
看学老大就是牛,学习收藏
|
能力值:
(RANK:1130 )
|
-
-
20 楼
由KANXUE版主的教程看来,GetRegistrationInformation是ASP SDK中一个重要函数,
几乎每一个用到SDK的程序都要修复这个函数(由源代码可见,它是第一个被调用的)
但是,对于 构造 GetRegistrationInformation函数的参数及返回值
有一点不解:
以下是源代码:
GetRegistrationInformation( 0, &UserKey, &UserName );
if ((UserKey != NULL) && (strlen(UserKey) > 0))
{
GetRegistrationInformation这个函数并没有返回值,后面的判断也没用到返回值,
只是用到UserKey,为什么构造 GetRegistrationInformation函数的参数及返回值时要有个返回值 MOV EAX,1
00404A41 mov eax, [esp+8]
00404A45 mov dword ptr [eax], 00404A5E ; ASCII "78787878" //参数Key
00404A4B mov eax, [esp+C]
00404A4F mov dword ptr [eax], 00404A68 ; ASCII "pediy" //参数Name
00404A55 mov eax, 1 //返回值
00404A5A retn 0C
确实有点不解,在ASProtect help中,作者的例子是:
For Delphi:
Var
Key : PChar;
Name : PChar;
begin
GetRegistrationInformation( 0, Key, Name );
MessageBox(0,StrPas(Key) + #13#10 + StrPas(Name),'Key/Name:',0);
end;
For C++:
{
char* Key = "";
char* Name = "";
GetRegistrationInformation( 0, &Key, &Name );
printf( " Key: %s\n Name: %s\n", Key, Name );
}
也没用到返回值
|
能力值:
(RANK:350 )
|
-
-
21 楼
最初由 海风月影 发布 对于 构造 GetRegistrationInformation函数的参数及返回值 有一点不解:
你跟踪加壳程序,带key与不带key都跟一下,你会发现有key时这函数返回1,否则返回0.
当然此例中返回任何值都不影响程序功能。
|
能力值:
(RANK:1130 )
|
-
-
22 楼
最初由 kanxue 发布 你跟踪加壳程序,带key与不带key都跟一下,你会发现有key时这函数返回1,否则返回0. 当然此例中返回任何值都不影响程序功能。
也就是说,可以把程序写出这样了:
IsReg=GetRegistrationInformation( 0, &UserKey, &UserName );
if (IsReg)
{
...
}
去试试看
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
跟着老大的文章练习,很受益!
|
能力值:
( LV9,RANK:650 )
|
-
-
24 楼
#include "stdafx.h"
#include "resource.h"
#include <shellapi.h>
#include "include/aspr_api.h"
#include "include/asprotect.h"
#pragma comment(lib,"include/aspr_ide.lib")
kanxue楼主这几个文件在哪找?
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
|
|
|