chrome配置文件校验初始化隐含參数的逆向

这篇文章接上一篇文章进一步升华:花了4个小时获得该信息的计算方式

比方在 chrome文件夹下的\Chrome\User Data\Default文件夹下的Secure Preferences,须要设置"startup_urls":["http://www.baidu.com/"]改參数时,chrome会在该文件里生成"startup_urls":"651507D384340BD7A56E3D3D7646C797AB1593B15400B397908EF95BD2D4CB16"该校验信息,该校验信息的解说在此:http://blog.csdn.net/basketwill/article/details/47663419

该校验信息就是上一篇文章中所计算的hash sha256值怎么计算呢

chrome会组合这种參数 ASCII "0A52ED0B71E75641568A87D0663A83205BA78F88FC2363B9D0session.startup_urls

["http://www.baidu.com/"]" ,对该字符窜计算sha256
就会生成 startup_urls":"651507D384340BD7A56E3D3D7646C797AB1593B15400B397908EF95BD2D4CB16"这种hash校验值。

注意  红色的字符窜中 0A52ED0B71E75641568A87D0663A83205BA78F88FC2363B9是怎样生成的呢

 计算方法例如以下:

 1.先获得用户电脑名称

2.然后对该用户去取的Security id 即sid

3.对获得sid进行标准的sha1 hash值

因为简单我直接贴代码: 代码相当简单

bool GetComputerSecurityId( wchar_t security_id[64] )

{

wchar_t account_name[MAX_PATH] = {0};

unsigned long account_len = MAX_PATH;

wchar_t sid[MAX_PATH] = {0};

char sid_buffer[24] = {0};

if ( GetComputerNameW(

account_name,

&account_len ))

{

if( AddAccessRights( account_name , &sid , 2*MAX_PATH ))

{

ConvertSidToStringSidW( &sid,

(LPWSTR *)sid_buffer );

if ( security_id && (*(unsigned long*)sid_buffer) )

{

memcpy( security_id , (const void *)(*(unsigned long*)sid_buffer) , MAX_PATH );

LocalFree( (HLOCAL)(*(unsigned long*)sid_buffer) );

}

}

}

return false;

}

bool AddAccessRights(wchar_t* lpAccountName,

PSID Sid,

unsigned long cb_sid_len )

{

wchar_t* account_name = (wchar_t*)HeapAlloc( GetProcessHeap(),0, 2*MAX_PATH );

unsigned long cchReferencedDomainName ;

SID_NAME_USE peUse;

unsigned long cbSid;

BOOLisSuccess = 0;

cbSid = cb_sid_len;

cchReferencedDomainName = 2*MAX_PATH;

if ( account_name )

{

isSuccess = LookupAccountNameW(

NULL,

lpAccountName,

Sid,

&cbSid,

account_name,

&cchReferencedDomainName,

&peUse );

if ( !isSuccess )

{

if ( GetLastError() == 122 )

{

if ( cbSid <= cb_sid_len )

{

if ( cchReferencedDomainName > 128 )

{

cchReferencedDomainName = 2 * cchReferencedDomainName;

}

isSuccess = LookupAccountNameW(

NULL,

lpAccountName,

Sid,

&cbSid,

account_name,

&cchReferencedDomainName,

&peUse);

}

}

}

}

if ( account_name )

{

HeapFree( GetProcessHeap() , 0 , account_name );

account_name = NULL;

}

return isSuccess;

}

bool GetVolumeSerialNumber( unsigned long* serial )

{

char root_name[MAX_PATH] = {0};

char* root_disk = 0;

unsigned long VolumeSerialNumber = 0;

if( GetSystemDirectory( root_name ,

MAX_PATH ) && serial )

{

if ( root_disk = strstr( root_name, "\\") )

{

root_disk[1] = 0;

*serial = 0;

if ( GetVolumeInformation(

&root_name[0],

0,

0,

&VolumeSerialNumber,

0,

0,

0,

0) )

{

*serial = VolumeSerialNumber;

return true;

}

}

}

return false;

}

bool GetComputerHashSha1(char* hash_id )

{

wchar_t wcSid[200] = {0};

unsigned long SerialNumber = 0;

GetComputerSecurityId( wcSid );

GetVolumeSerialNumber(&SerialNumber);

char szhashId[40] = {0};

base::SHA1HashBytes( (const unsigned char *)wcSid , 2*lstrlenW(wcSid) , (unsigned char *)szhashId );

return true;

}

 字符串中D0的产生:

base::SHA1HashBytes( (const unsigned char *)wcSid , 2*lstrlenW(wcSid) , (unsigned char *)szhashId );

GetCrc(szhashId );
这个结果===D0,就是计算szhashId  的 8位crc

ULONG GetCrc( unsigned char* szhashId , int  len )

{

ULONG crc = 0;

if ( len )

{

for ( int i = 0 ; i < len ; i++ )

{

crc &= 0xFF;

crc ^= ( szhashId[i] & 0xFF);

crc = (g_crc_list[crc] ^ 0xFF);

}

}

crc ^= 0x0055;

}

那个 unsigned char  g_crc_list{

0,7,0x0E,0x9,0x1C,0x1B,

0x12,

0x15,

0x38,

0x3F,

0x36,

31h,

24h ,

23h,

2Ah,

2Dh,

70h,

77h,

7Eh ,

79h,

6Ch,

6Bh,

62h,

65h,

48h,

4Fh,

46h,

41h,

54h,

53h,

5Ah,

5Dh,

0E0h,

0E7h,

0EEh,

0E9h,

0FCh,

0FBh,

0F2h,

0F5h ,

0D8h,

0DFh,

0D6h,

0D1h ,

0C4h ,

0C3h,

0CAh,

0CDh,

90h,

.rdata:03407FB1                 db  97h ; ?

.rdata:03407FB2                 db  9Eh ; ?

.rdata:03407FB3                 db  99h ; ?

.rdata:03407FB4                 db  8Ch ; ?

.rdata:03407FB5                 db  8Bh ; ?

.rdata:03407FB6                 db  82h ; ?

.rdata:03407FB7                 db  85h ; ?

.rdata:03407FB8                 db 0A8h ; ?

.rdata:03407FB9                 db 0AFh ; ?

.rdata:03407FBA                 db 0A6h ; ?

.rdata:03407FBB                 db 0A1h ; ?

.rdata:03407FBC                 db 0B4h ; ?

.rdata:03407FBD                 db 0B3h ; ?

.rdata:03407FBE                 db 0BAh ; ?

.rdata:03407FBF                 db 0BDh ; ?

.rdata:03407FC0                 db 0C7h ; ?

.rdata:03407FC1                 db 0C0h ; ?

.rdata:03407FC2                 db 0C9h ; ?

.rdata:03407FC3                 db 0CEh ; ?

.rdata:03407FC4                 db 0DBh ; ?

.rdata:03407FC5                 db 0DCh ; ?

.rdata:03407FC6                 db 0D5h ; ?

.rdata:03407FC7                 db 0D2h ; ?

.rdata:03407FC8                 db 0FFh

.rdata:03407FC9                 db 0F8h ; ?

.rdata:03407FCA                 db 0F1h ; ?

.rdata:03407FCB                 db 0F6h ; ?

.rdata:03407FCC                 db 0E3h ; ?

.rdata:03407FCD                 db 0E4h ; ?

.rdata:03407FCE                 db 0EDh ; ?

.rdata:03407FCF                 db 0EAh ; ?

.rdata:03407FD0                 db 0B7h ; ?

.rdata:03407FD1                 db 0B0h ; ?

.rdata:03407FD2                 db 0B9h ; ?

.rdata:03407FD3                 db 0BEh ; ?

.rdata:03407FD4                 db 0ABh ; ?

.rdata:03407FD5                 db 0ACh ; ?

.rdata:03407FD6                 db 0A5h ; ?

.rdata:03407FD7                 db 0A2h ; ?

.rdata:03407FD8                 db  8Fh ; ?

.rdata:03407FD9                 db  88h ; ?

.rdata:03407FDA                 db  81h ; ?

.rdata:03407FDB                 db  86h ; ?

.rdata:03407FDC                 db  93h ; ?

.rdata:03407FDD                 db  94h ; ?

.rdata:03407FDE                 db  9Dh ; ?

.rdata:03407FDF                 db  9Ah ; ?

.rdata:03407FE0                 db  27h ; ‘

.rdata:03407FE1                 db  20h

.rdata:03407FE2                 db  29h ; )

.rdata:03407FE3                 db  2Eh ; .

.rdata:03407FE4                 db  3Bh ; ;

.rdata:03407FE5                 db  3Ch ; <

.rdata:03407FE6                 db  35h ; 5

.rdata:03407FE7                 db  32h ; 2

.rdata:03407FE8                 db  1Fh

.rdata:03407FE9                 db  18h

.rdata:03407FEA                 db  11h

.rdata:03407FEB                 db  16h

.rdata:03407FEC                 db    3

.rdata:03407FED                 db    4

.rdata:03407FEE                 db  0Dh

.rdata:03407FEF                 db  0Ah

.rdata:03407FF0                 db  57h ; W

.rdata:03407FF1                 db  50h ; P

.rdata:03407FF2                 db  59h ; Y

.rdata:03407FF3                 db  5Eh ; ^

.rdata:03407FF4                 db  4Bh ; K

.rdata:03407FF5                 db  4Ch ; L

.rdata:03407FF6                 db  45h ; E

.rdata:03407FF7                 db  42h ; B

.rdata:03407FF8                 db  6Fh ; o

.rdata:03407FF9                 db  68h ; h

.rdata:03407FFA                 db  61h ; a

.rdata:03407FFB                 db  66h ; f

.rdata:03407FFC                 db  73h ; s

.rdata:03407FFD                 db  74h ; t

.rdata:03407FFE                 db  7Dh ; }

.rdata:03407FFF                 db  7Ah ; z

.rdata:03408000                 db  89h ; ?

.rdata:03408001                 db  8Eh ; ?

.rdata:03408002                 db  87h ; ?

.rdata:03408003                 db  80h ; €

.rdata:03408004                 db  95h ; ?

.rdata:03408005                 db  92h ; ?

.rdata:03408006                 db  9Bh ; ?

.rdata:03408007                 db  9Ch ; ?

.rdata:03408008                 db 0B1h ; ?

.rdata:03408009                 db 0B6h ; ?

.rdata:0340800A                 db 0BFh ; ?

.rdata:0340800B                 db 0B8h ; ?

.rdata:0340800C                 db 0ADh ; ?

.rdata:0340800D                 db 0AAh ; ?

.rdata:0340800E                 db 0A3h ; ?

.rdata:0340800F                 db 0A4h ; ?

.rdata:03408010                 db 0F9h ; ?

.rdata:03408011                 db 0FEh ; ?

.rdata:03408012                 db 0F7h ; ?

.rdata:03408013                 db 0F0h ; ?

.rdata:03408014                 db 0E5h ; ?

.rdata:03408015                 db 0E2h ; ?

.rdata:03408016                 db 0EBh ; ?

.rdata:03408017                 db 0ECh ; ?

.rdata:03408018                 db 0C1h ; ?

0C6h ; ?

0CFh ; ?

.rdata:0340801B                 db 0C8h ; ?

.rdata:0340801C                 db 0DDh ; ?

.rdata:0340801D                 db 0DAh ; ?

.rdata:0340801E                 db 0D3h ; ?

0D4h ; ?

69h ; i

6Eh ; n

67h ; g

60h ; `

75h ; u

72h ; r

7Bh ; {

.rdata:03408027  
              db  7Ch ; |

.rdata:03408028  
              db  51h ; Q

.rdata:03408029  
              db  56h ; V

.rdata:0340802A
                db  5Fh ; _

.rdata:0340802B
                db  58h ; X

.rdata:0340802C
                db  4Dh ; M

.rdata:0340802D
                db  4Ah ; J

.rdata:0340802E
                db  43h ; C

.rdata:0340802F
                db  44h ; D

.rdata:03408030  
              db  19h

.rdata:03408031  
              db  1Eh

.rdata:03408032  
              db  17h

.rdata:03408033  
              db  10h

.rdata:03408034  
              db    5

.rdata:03408035  
              db    2

.rdata:03408036  
              db  0Bh

.rdata:03408037  
              db  0Ch

.rdata:03408038  
              db  21h ; !

.rdata:03408039  
              db  26h ; &

.rdata:0340803A
                db  2Fh ; /

.rdata:0340803B
                db  28h ; (

.rdata:0340803C
                db  3Dh ; =

.rdata:0340803D
                db  3Ah ; :

.rdata:0340803E
                db  33h ; 3

.rdata:0340803F
                db  34h ; 4

.rdata:03408040  
              db  4Eh ; N

.rdata:03408041  
              db  49h ; I

.rdata:03408042  
              db  40h ; @

.rdata:03408043  
              db  47h ; G

.rdata:03408044  
              db  52h ; R

.rdata:03408045  
              db  55h ; U

.rdata:03408046  
              db  5Ch ; \

.rdata:03408047  
              db  5Bh ; [

.rdata:03408048  
              db  76h ; v

.rdata:03408049  
              db  71h ; q

.rdata:0340804A
                db  78h ; x

.rdata:0340804B
                db  7Fh ;

.rdata:0340804C
                db  6Ah ; j

.rdata:0340804D
                db  6Dh ; m

.rdata:0340804E
                db  64h ; d

.rdata:0340804F
                db  63h ; c

.rdata:03408050  
              db  3Eh ; >

.rdata:03408051  
              db  39h ; 9

.rdata:03408052  
              db  30h ; 0

.rdata:03408053  
              db  37h ; 7

.rdata:03408054  
              db  22h ; "

.rdata:03408055  
              db  25h ; %

.rdata:03408056  
              db  2Ch ; ,

.rdata:03408057  
              db  2Bh ; +

.rdata:03408058  
              db    6

.rdata:03408059  
              db    1

.rdata:0340805A
                db    8

.rdata:0340805B
                db  0Fh

.rdata:0340805C
                db  1Ah

.rdata:0340805D
                db  1Dh

.rdata:0340805E
                db  14h

.rdata:0340805F
                db  13h

.rdata:03408060  
              db 0AEh ; ?

.rdata:03408061  
              db 0A9h ; ?

.rdata:03408062  
              db 0A0h ; ?

.rdata:03408063  
              db 0A7h ; ?

.rdata:03408064  
              db 0B2h ; ?

.rdata:03408065  
              db 0B5h ; ?

.rdata:03408066  
              db 0BCh ; ?

.rdata:03408067  
              db 0BBh ; ?

.rdata:03408068  
              db  96h ; ?

.rdata:03408069  
              db  91h ; ?

.rdata:0340806A
                db  98h ; ?

.rdata:0340806B
                db  9Fh ; ?

.rdata:0340806C
                db  8Ah ; ?

.rdata:0340806D
                db  8Dh ; ?

.rdata:0340806E
                db  84h ; ?

.rdata:0340806F
                db  83h ; ?

.rdata:03408070  
              db 0DEh ; ?

.rdata:03408071  
              db 0D9h ; ?

.rdata:03408072  
              db 0D0h ; ?

.rdata:03408073  
              db 0D7h ; ?

.rdata:03408074  
              db 0C2h ; ?

.rdata:03408075  
              db 0C5h ; ?

.rdata:03408076  
              db 0CCh ; ?

.rdata:03408077  
              db 0CBh ; ?

.rdata:03408078  
              db 0E6h ; ?

.rdata:03408079  
              db 0E1h ; ?

.rdata:0340807A
                db 0E8h ; ?

.rdata:0340807B
                db 0EFh ; ?

.rdata:0340807C
                db 0FAh ; ?

.rdata:0340807D
                db 0FDh ; ?

.rdata:0340807E
                db 0F4h ; ?

.rdata:0340807F
                db 0F3h ; ? 

2.第二个隐含数据

第二个隐含数据是在文件夹下resources.pak文件鼠标框的位置,取64个字节。放入sha256的计算第一个字符窜參数

算法例如以下

unsigned char* GetResourcePak()

{

//unsigned long source_id = 0x269;

//读取并映射resource pak 文件

//校验

//Resource.pak

/*

0x4CB0000--->0x4CB03D1

if( head == 4 )

{

if( 0x486*6 + 15 < size )

{

0x486++;

if( (heade += 0xB) ==  0x486*6 + 15 )

{

heade += 6;

}

}

}

}

*/

//31F5BD

//获得地址

chrome_resource_pak sb_pak;

sb_pak.sb_id = 0x269;

GetSourceId0(&sb_pak,

(unsigned char *)0x4cb00000+9,

0x486,

sizeof(chrome_resource_hash_pak));

return NULL;

}

时间: 2024-11-10 14:44:39

chrome配置文件校验初始化隐含參数的逆向的相关文章

获取Oracle隐含參数信息

Oracle数据库的初始化參数.主要来源于两个Oracle内部数据字典表:X$KSPPCV和X$KSPPI通常我们查询的V$Parameter视图或使用show parameter命令都是就来源于这两个系统表的.但通过这两种方式不能查询隐含參数. X$KSPPCV用以记录当前的设置的值,及是否使用了缺省值等信息,X$KSPPI则是一个基础表,用于记录參数名.參数说明等简单的信息.须要注意的是INST_ID字段,在Rac环境中用以确定參数所属的实例. 能够使用例如以下脚本.查询当前实例的隐含參数:

关于oracle db 11gR2版本号上的_external_scn_rejection_threshold_hours參数和scn headroom补丁问题

来自于: Installing, Executing and Interpreting output from the "scnhealthcheck.sql" script (文档 ID 1393363.1) 第一点: In addition to the above result the script output may advise to set the hidden parameter "_external_scn_rejection_threshold_hours

TestNG的參数化測试、共享线程池配置、參数默认值配置

在使用TestNG进行測试时,常常会使用到一些參数化配置,比方数据库.连接池.线程池数. 使用TestNG的參数@Parameter注解进行自己主动化读取 原创文章,版权全部.同意转载,标明出处:http://blog.csdn.net/wanghantong 使用多线程的方式执行測试代码配置: 在'<suite>'标签中配置data-provider-thread-count="20" Java代码: /** * * <p> * Title: TestngPa

如何获得(读取)web.xml配置文件的參数

參考代码例如以下: com.atguigu.struts2.app.converters.DateConverter.java public DateFormat getDateFormat(){ if(dateFormat == null){ //获取当前 WEB 应用的初始化參数 pattern(该參数在WEB-INF下的web.xml文件里) //第一次用的时候获取,并载入相关的信息 //这样的方法是使用/struts2-6/src/xwork-conversion.properties配

[Golang] 从零開始写Socket Server(4):将执行參数放入配置文件(XML/YAML)

为了将我们写好的Server公布到server上.就要将我们的代码进行build打包.这样假设以后想要改动一些代码的话.须要又一次给代码进行编译打包并上传到server上. 显然,这么做过于繁琐. ..因此常见的做法都是将Server执行中可能会频繁变更的变量.数值写入配置文件里.这样直接让程序从配置文件读取參数,避免对代码频繁的操作. 关于配置文件的格式,在这里推荐YAML 和XML~ XML是传统的配置文件写法,只是本人比較推荐yaml,他比XML要更加人性化,也更好写,关于yaml的具体信

java之 ------ 可变參数和卫条件

可变參数:适用于參数个数不确定.类型确定的情况,java把可变參数当做数组处理. 可变參数必须位于最后一项.当可变參数个数多于一个时,必将有一个不是最后一项,所以仅仅支持有一个可变參数. 可变參数的书写形式如: int add(int x,int ...args){  方法体 } ... 位于变量类型和变量名之间.前后有无空格都能够: 调用可变參数的方法时.编译器为该可变參数隐含创建一个数组,在方法体中以数组的形式訪问可变參数. 条件逻辑推断型的应用(模拟人工推理) /* 有人邀请A,B,C,D

CloudStack全局配置參数

參数 描写叙述 类型 默认值 account.cleanup.interval 清除用户账户所须要等待的时间(秒) 整数 86400 agent.lb.enabled If agent load balancing enabled in cluster setup true/false false agent.load.threshold  Percentage (as a value between 0 and 1) of connected agents after which agent

c 语言函数可变參数的处理

/************************************************************************* > File Name: va_list.c > Author: zshh0604 > Mail: [email protected] > Created Time: 2014年10月14日 星期二 15时16分09秒 **********************************************************

hi3531 SDK 编译 uboot, 改动PHY地址, 改动 uboot 參数 .

一,编译uboot SDK文档写得比較清楚了,写一下须要注意的地方吧. 1. 之前用SDK里和别人给的已经编译好的uboot,使用fastboot工具都刷不到板子上.最后自己用SDK里uboot源代码编译的则成功刷了进去,不知道详细什么问题,可是一直没试试有点不应该了. 2. 文档中说要用一个Excel表格做配置然后用mkboot.sh将配置文件和uboot.bin文件一起生成终于的uboot,我一直纠结那个Excel不能配置,里面的參数也看不懂.谁知道事实上不用配影响也不大. 3. 之前用别人