能力值:
(RANK:215 )
2 楼
跟上学习。
======================================================================
//******************** 程序入口 *******************
:00401000 6A00 push 00000000
:00401002 6800204000 push 00402000
* Possible StringData Ref from Data Obj ->"Click OK to check for the keyfile."
|
:00401007 6812204000 push 00402012
:0040100C 6A00 push 00000000
* Reference To: USER32.MessageBoxA, Ord:0000h
|
:0040100E E88C000000 Call 0040109F
:00401013 6A00 push 00000000
:00401015 6880000000 push 00000080
:0040101A 6A03 push 00000003
:0040101C 6A00 push 00000000
:0040101E 6A00 push 00000000
:00401020 6800000080 push 80000000
* Possible StringData Ref from Data Obj ->"abex.l2c" //kyfile文件名为abex.l2c
|
:00401025 68B9204000 push 004020B9
* Reference To: KERNEL32.CreateFileA, Ord:0000h
|
:0040102A E85E000000 Call 0040108D
:0040102F A3CA204000 mov dword ptr [004020CA], eax
:00401034 83F8FF cmp eax, FFFFFFFF //如果没有abex.l2c这个名称的keyfile文件提示没找到keyfile。
:00401037 743C je 00401075
:00401039 6A00 push 00000000
:0040103B FF35CA204000 push dword ptr [004020CA]
* Reference To: KERNEL32.GetFileSize, Ord:0000h
|
:00401041 E84D000000 Call 00401093
:00401046 83F812 cmp eax, 00000012 //获取keyfile文件大小
:00401049 7515 jne 00401060 //如果是18个字节,则正确。
:0040104B 6A00 push 00000000
* Possible StringData Ref from Data Obj ->"Well done!"
|
:0040104D 6835204000 push 00402035
* Possible StringData Ref from Data Obj ->"Yep, keyfile found!"
|
:00401052 6840204000 push 00402040
:00401057 6A00 push 00000000
* Reference To: USER32.MessageBoxA, Ord:0000h
|
:00401059 E841000000 Call 0040109F
:0040105E EB28 jmp 00401088
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401049(C)
|
:00401060 6A00 push 00000000
* Possible StringData Ref from Data Obj ->"Error"
|
:00401062 6879204000 push 00402079
* Possible StringData Ref from Data Obj ->"The found file is not a valid "
->"keyfile!"
|
:00401067 687F204000 push 0040207F
:0040106C 6A00 push 00000000
* Reference To: USER32.MessageBoxA, Ord:0000h
|
:0040106E E82C000000 Call 0040109F
:00401073 EB13 jmp 00401088
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401037(C)
|
:00401075 6A00 push 00000000
* Possible StringData Ref from Data Obj ->"Error"
|
:00401077 6854204000 push 00402054
* Possible StringData Ref from Data Obj ->"Hmmmmm, I can't find the file!"
|
:0040107C 685A204000 push 0040205A
:00401081 6A00 push 00000000
* Reference To: USER32.MessageBoxA, Ord:0000h
|
:00401083 E817000000 Call 0040109F
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040105E(U), :00401073(U)
|
* Reference To: KERNEL32.ExitProcess, Ord:0000h
|
:00401088 E80C000000 Call 00401099
* Referenced by a CALL at Address:
|:0040102A
|
* Reference To: KERNEL32.CreateFileA, Ord:0000h
|
:0040108D FF2554304000 Jmp dword ptr [00403054]
* Referenced by a CALL at Address:
|:00401041
|
* Reference To: KERNEL32.GetFileSize, Ord:0000h
|
:00401093 FF2558304000 Jmp dword ptr [00403058]
* Referenced by a CALL at Address:
|:00401088
|
* Reference To: KERNEL32.ExitProcess, Ord:0000h
|
:00401099 FF255C304000 Jmp dword ptr [0040305C]
* Reference To: USER32.MessageBoxA, Ord:0000h
|
:0040109F FF2564304000 Jmp dword ptr [00403064]
:004010A5 00000000000000000000 BYTE 10 DUP(0)
:004010AF 00000000000000000000 BYTE 10 DUP(0)
:004010B9 00000000000000000000 BYTE 10 DUP(0)
:004010C3 00000000000000000000 BYTE 10 DUP(0)
:004010CD 00000000000000000000 BYTE 10 DUP(0)
:004010D7 00000000000000000000 BYTE 10 DUP(0)
:004010E1 00000000000000000000 BYTE 10 DUP(0)
:004010EB 00000000000000000000 BYTE 10 DUP(0)
:004010F5 00000000000000000000 BYTE 10 DUP(0)
:004010FF 00000000000000000000 BYTE 10 DUP(0)
:00401109 00000000000000000000 BYTE 10 DUP(0)
:00401113 00000000000000000000 BYTE 10 DUP(0)
:0040111D 00000000000000000000 BYTE 10 DUP(0)
:00401127 00000000000000000000 BYTE 10 DUP(0)
:00401131 00000000000000000000 BYTE 10 DUP(0)
:0040113B 00000000000000000000 BYTE 10 DUP(0)
:00401145 00000000000000000000 BYTE 10 DUP(0)
:0040114F 00000000000000000000 BYTE 10 DUP(0)
:00401159 00000000000000000000 BYTE 10 DUP(0)
:00401163 00000000000000000000 BYTE 10 DUP(0)
:0040116D 00000000000000000000 BYTE 10 DUP(0)
:00401177 00000000000000000000 BYTE 10 DUP(0)
:00401181 00000000000000000000 BYTE 10 DUP(0)
:0040118B 00000000000000000000 BYTE 10 DUP(0)
:00401195 00000000000000000000 BYTE 10 DUP(0)
:0040119F 00000000000000000000 BYTE 10 DUP(0)
:004011A9 00000000000000000000 BYTE 10 DUP(0)
:004011B3 00000000000000000000 BYTE 10 DUP(0)
:004011BD 00000000000000000000 BYTE 10 DUP(0)
:004011C7 00000000000000000000 BYTE 10 DUP(0)
:004011D1 00000000000000000000 BYTE 10 DUP(0)
:004011DB 00000000000000000000 BYTE 10 DUP(0)
:004011E5 00000000000000000000 BYTE 10 DUP(0)
:004011EF 00000000000000000000 BYTE 10 DUP(0)
:004011F9 00000000000000616265 BYTE 10 DUP(0)
构造一个abex.l2c文件,内容任意凑够18个字符完成。
能力值:
( LV2,RANK:10 )
3 楼
思路比较好,值得借鉴。
能力值:
( LV2,RANK:10 )
4 楼
我想知道是从哪里看出来,要检测是否用光盘的??
我是菜鸟中的菜鸟
能力值:
( LV2,RANK:10 )
5 楼
小弟今天第一次学汇编
于是就照猫花虎的按你的程序走了一遍:) 不要见笑
00401049 |. 75 15 jnz short unabexcr.00401060
我已经把此处的 JNZ 改为JE 用UE 找75 15字段 把75 换成74 然后保存 但是运行后还提示Hmmmmm,I can't find the file!
是什么原因 还是我的操作有错呢
希望大家对我问的问题 不要见笑
能力值:
( LV2,RANK:10 )
6 楼
那么你就干脆也把那个跳到找不到文件的跳转修改成nop就可以了
让它顺序执行下去
能力值:
( LV8,RANK:130 )
7 楼
好简单的一个程序呀!
能力值:
( LV8,RANK:130 )
8 楼
学习中,对菜鸟帮助还是很大的
能力值:
( LV6,RANK:90 )
9 楼
学习,中好教程
能力值:
( LV9,RANK:220 )
10 楼
呵呵,现在才有时间上网,发现这个帖子成了精华贴,呵呵,还真是有些不好意思.:D ,这几天就贴出第2篇帖子.
能力值:
( LV9,RANK:220 )
11 楼
回复fxbzn大哥,应该改成jz,不是je
能力值:
( LV2,RANK:10 )
12 楼
不错啊。
谢谢
能力值:
(RANK:10 )
13 楼
原创支持!!!
能力值:
( LV4,RANK:50 )
14 楼
:) :)
这个教程写的细致而且也不是很难,对于菜菜鸟来说太好了。将这句
00401037 |. 74 3C je short unabexcr.00401075
改为EB 12 我试了一下好像可以!不知道算不算爆破成功?
能力值:
( LV4,RANK:50 )
15 楼
现在的软件如果改一个什么 jz jnz 就成.那估计也是什么垃圾了.
不要见怪,不过总认为这样的贴着有蒙的成分在里面.