-
您的位置:首页 → 精文荟萃 → 破解文章 → crackcode代码分享笔记(三) (8千字)
crackcode代码分享笔记(三) (8千字)
时间:2004/10/15 0:59:00来源:本站整理作者:蓝点我要评论(0)
-
来!继续crackcode的下一步代码分析:
:004010DC 6888974000 push 00409788 --》point to "First_Break_Address"
:004010E1 E8A8070000 call 0040188E --》把文本地址转换为HEX
:004010E6 A3A0984000 mov dword ptr [004098A0], eax --》奖转换后的结果保存
:004010EB C7042480974000 mov dword ptr [esp], 00409780 --》point to "First_Break_Address_Code_Lenth"
:004010F2 E897070000 call 0040188E
:004010F7 8B0DA0984000 mov ecx, dword ptr [004098A0]
:004010FD A350A64000 mov dword ptr [0040A650], eax
:00401102 03C1 add eax, ecx --》First_Break_Address+lenth
:00401104 C7042474974000 mov dword ptr [esp], 00409774
:0040110B A39C984000 mov dword ptr [0040989C], eax
:00401110 E879070000 call 0040188E
:00401115 A398984000 mov dword ptr [00409898], eax
:0040111A C7042470974000 mov dword ptr [esp], 00409770 --》"Second_Break_Address"
:00401121 E868070000 call 0040188E
:00401126 8B0D98984000 mov ecx, dword ptr [00409898] --》"Second_Break_Address_Code_Lenth"
:0040112C A354A64000 mov dword ptr [0040A654], eax
:00401131 BF40A64000 mov edi, 0040A640
:00401136 03C1 add eax, ecx --》Second_Break_Address+lenth
* Possible StringData Ref from Data Obj ->"0"
|
:00401138 C70424BC614000 mov dword ptr [esp], 004061BC
:0040113F 57 push edi --》"MODE"
:00401140 A394984000 mov dword ptr [00409894], eax
:00401145 E886080000 call 004019D0
:0040114A 59 pop ecx
:0040114B 85C0 test eax, eax
:0040114D 59 pop ecx
:0040114E 7506 jne 00401156
:00401150 210544A64000 and dword ptr [0040A644], eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040114E(C)
|
* Possible StringData Ref from Data Obj ->"1"
|
:00401156 68B8614000 push 004061B8
:0040115B 57 push edi
:0040115C E86F080000 call 004019D0
:00401161 59 pop ecx
:00401162 85C0 test eax, eax
:00401164 59 pop ecx
:00401165 750A jne 00401171
:00401167 C70544A6400001000000 mov dword ptr [0040A644], 00000001
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401165(C)
|
* Possible StringData Ref from Data Obj ->"2"
|
:00401171 68B4614000 push 004061B4
:00401176 57 push edi
:00401177 E854080000 call 004019D0
:0040117C 59 pop ecx
:0040117D 85C0 test eax, eax
:0040117F 59 pop ecx
:00401180 750A jne 0040118C
:00401182 C70544A6400002000000 mov dword ptr [0040A644], 00000002
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401180(C)
|
* Possible StringData Ref from Data Obj ->"3"
|
:0040118C 68B0614000 push 004061B0
:00401191 57 push edi
:00401192 E839080000 call 004019D0
:00401197 59 pop ecx
:00401198 85C0 test eax, eax
:0040119A 59 pop ecx
:0040119B 750A jne 004011A7
:0040119D C70544A6400003000000 mov dword ptr [0040A644], 00000003
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040119B(C)
|
====以上程序是对处理mode不同值,在[0040A644]地址中作标志===========
相当于
switch( mode )
{
case '0':
mode=0;
case '1':
mode=1;
case '2':
mode=2;
case '3':
mode=3;
}
* Possible StringData Ref from Data Obj ->"EAX"
|
:004011A7 68AC614000 push 004061AC
:004011AC 56 push esi --》"Save_Code_Address"
:004011AD E81E080000 call 004019D0
:004011B2 59 pop ecx
:004011B3 85C0 test eax, eax
:004011B5 59 pop ecx
:004011B6 7511 jne 004011C9
:004011B8 C605609740008B mov byte ptr [00409760], 8B
:004011BF C7054CA64000F0909090 mov dword ptr [0040A64C], 909090F0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004011B6(C)
|
* Possible StringData Ref from Data Obj ->"EBX"
|
:004011C9 68A8614000 push 004061A8
:004011CE 56 push esi
:004011CF E8FC070000 call 004019D0
:004011D4 59 pop ecx
:004011D5 85C0 test eax, eax
:004011D7 59 pop ecx
:004011D8 7511 jne 004011EB
:004011DA C605609740008B mov byte ptr [00409760], 8B
:004011E1 C7054CA64000F3909090 mov dword ptr [0040A64C], 909090F3
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004011D8(C)
|
* Possible StringData Ref from Data Obj ->"ECX"
|
:004011EB 68A4614000 push 004061A4
:004011F0 56 push esi
:004011F1 E8DA070000 call 004019D0
:004011F6 59 pop ecx
:004011F7 85C0 test eax, eax
:004011F9 59 pop ecx
:004011FA 7511 jne 0040120D
:004011FC C605609740008B mov byte ptr [00409760], 8B
:00401203 C7054CA64000F1909090 mov dword ptr [0040A64C], 909090F1
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004011FA(C)
|
* Possible StringData Ref from Data Obj ->"EDX"
|
:0040120D 68A0614000 push 004061A0
:00401212 56 push esi
:00401213 E8B8070000 call 004019D0
:00401218 59 pop ecx
:00401219 85C0 test eax, eax
:0040121B 59 pop ecx
:0040121C 7511 jne 0040122F
:0040121E C605609740008B mov byte ptr [00409760], 8B
:00401225 C7054CA64000F2909090 mov dword ptr [0040A64C], 909090F2
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040121C(C)
|
* Possible StringData Ref from Data Obj ->"EDI"
|
:0040122F 689C614000 push 0040619C
:00401234 56 push esi
:00401235 E896070000 call 004019D0
:0040123A 59 pop ecx
:0040123B 85C0 test eax, eax
:0040123D 59 pop ecx
:0040123E 7511 jne 00401251
:00401240 C605609740008B mov byte ptr [00409760], 8B
:00401247 C7054CA64000F7909090 mov dword ptr [0040A64C], 909090F7
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040123E(C)
|
* Possible StringData Ref from Data Obj ->"ESI"
|
:00401251 6898614000 push 00406198
:00401256 56 push esi
:00401257 E874070000 call 004019D0
:0040125C 59 pop ecx
:0040125D 85C0 test eax, eax
:0040125F 59 pop ecx
:00401260 7511 jne 00401273
:00401262 C6056097400090 mov byte ptr [00409760], 90
:00401269 C7054CA6400090909090 mov dword ptr [0040A64C], 90909090
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401260(C)
|
* Possible StringData Ref from Data Obj ->"EBP"
|
:00401273 6894614000 push 00406194
:00401278 56 push esi
:00401279 E852070000 call 004019D0
:0040127E 59 pop ecx
:0040127F 85C0 test eax, eax
:00401281 59 pop ecx
:00401282 7511 jne 00401295
:00401284 C605609740008B mov byte ptr [00409760], 8B
:0040128B C7054CA64000F5909090 mov dword ptr [0040A64C], 909090F5
====以上程序是对处理Save_Code_Address不同值,做相应的处理======
相当于
switch( Save_Code_Address )
{
case 'EAX':
code1=8B;
code2=909090F0;
case 'EBX':
code1=8B;
code2=909090F0;
case 'EC':
code1=8B;
code2=909090F0;
case 'EDX':
code1=8B;
code2=909090F0;
case 'EDI':
code1=8B;
code2=909090F0;
case 'ESI':
code1=90;
code2=909090F0;
case 'EBP':
code1=8B;
code2=909090F0;
}
小结: 希望大家能帮我解答。为什么不同的寄存器会变成这样不同的数字?
它到底是代表什么??
今天就到这里,就到这里。。。。。。
|
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>