首页
社区
课程
招聘
使用
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2013-10-27 11:54
0
[原创]Android逆向助手 v2.1(原名:APK逆向助手)(2014-4-1更新)
感谢分享,如果有这样的功能就更好了,
就是直接与apk/dex/smali等文件关联后单击鼠标右键可直接选择进行相应操作如解包APK,和关联文件夹右键选择菜单直接进行重新打包,
很实用的功能哦,直接在资源管理器中传递文件路径给程序进行处理,免去通过程序自身浏览选择文件的步骤,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2013-10-25 08:26
0
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2013-10-24 19:33
0
[求助]请教下坛内从事安全行业的前辈们,满足招聘需求后应聘成功容易吗?
感谢解答,开发的话,一般用的delphi和vc,
简历...诶,现在就是不知道是否满足要求呢,
有过java和.net相关笔试面试经验,
但软件安全之类从未试过,
小城市去那些公司一趟不容易,怕技术不够,过去一趟竹篮打水,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2012-1-12 00:19
0
[原创]我生命里的每一分钟,全力以赴心中的梦
和我的经历也是好像,同样的去了电脑学校,想学黑,休学,装电脑,自学,游戏,沾染外挂,接触易语言,发现模块,想学驱动等等,不过都过去三四年了依然不会驱动,到现在也只是了解一些历史而已,另外善意提醒楼主,外挂是非法的,法律不允许的,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-12-22 08:31
0
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-11-10 18:39
0
[原创]求锻炼,求培养
当年,也翻墙,后来冬天路滑,男生宿舍楼全体轮流作业,耗时一晚,终于悄悄的将某寝室砸穿,在学校与网吧间建立了通道,同时也为后来的学弟造福了……现在想来,甚表欣慰,甚是…惭愧,不过这些都不是重点,重点是,楼主现在找工作实在太早了,有环境可以温暖舒适的享受教育是很幸福的事情,比如那些工作好多都要求学历的,纵然勉强找到了此类工作,待遇还是有着天壤之别,所以,呵呵,建议你先完成大学学业之后再找工作哦,以后至少在做自我介绍的时候可以说上一句我毕业于某某某大学,另外学习的时间就该学习,立即参加工作那你的时间就是工作时间了,没多少时间学习的,毕竟一般公司来讲,老板发的薪水是用来购买你的劳动力,还是那句话,继续读大学吧,如果你不想做那种没有休息日的活,不想连逛下技术论坛还得以抽烟作为理由,不想以回个帖子需要还需要承诺额外加班多长时间的话,呵呵,最后因为是手机发帖,可能会有错字,可能语句不通,可能没照顾你的感受,不过说的都是真心话,最后祝你以后能找到一份理想的工作,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-9-25 21:10
0
[讨论]请问王爽的汇编语言和IBM-PC汇编语言这两本书哪个更好?
我的顺序,王爽-杨季文-罗云彬,仅供参考,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-9-21 11:19
0
[未收录]OllyDbg小改01
给OD加上,加上反反调试的功能?或许若干年后才有能力发表那样的帖子,现今我只是一个win32汇编的初学者,对于OD都没有用过多少次,OD未进行一些代码保护之类的加密操作实乃万幸,为获得邀请码一睹其他版块之风采斗胆写下三篇杂乱的修改记录,或是我的锲而不舍终打动版主勉强获得邀请码有幸正式成为看雪一员,在看雪各大版块浩瀚的知识海洋里那些帖子里颇多的各类专业词汇均乃未所闻见,同时也意识到自己井底之蛙能力之低下,希望若干年后打造一个属于自己的"SuperOD"并非痴人说梦吧,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-9-21 10:47
0
[讨论]我的迷茫--破解难道是绝路?
只为了让计算机里不出现乱弹出网页的程序……
或者说是为了自保,毕竟在这个病毒与木马泛滥的年代,指不定哪天被阴了就不好了,
而且也不一定带刀的都是杀手嘛,也可能是护卫,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-9-20 20:50
0
[未收录]OllyDbg小改01
进行调试的时候好像常会用到Windows上计算器的进制转换和用记事本记些临时数据,
虽然摁下Win+R然后输入"calc"或是"notepad"并不需要多长时间,
不过有时候天气太冷,冷得在OD里F7F8都要用鼠标点的时候,
就希望着要是能在OD里直接点击一下便能运行计算器或是记事本,
看了一下原版英文OD里有个Help菜单,
里面的"Contents"和"Select A&PI help file"子菜单一般还真用不到,
相对与中文版来说也就是"帮助"菜单里的"帮助内容"和"选择帮助文件",
要是点击它们能够运行计算器和记事本就好了,
先试试,
将目标OD拖入"ResHacker.exe",然后找到菜单,


在下面可以发现这样的菜单,


随便进行一下修改,然后编译脚本并保存,


同时记录下每个子菜单后面的数字,方便之后跟踪调试,
Calc-2502,NotePad-2503,

使用另外一个OD打开这个目标OD然后F9运行,
在工具栏上面单击"W"按钮,并在目标OD的主窗口上设置消息断点111-WM_COMMAND,


然后在目标OD上单击Help菜单里面的"Calc"子菜单,
然后调试目标OD的OD就断了下来,
004323D4 >/$  55            push ebp
004323D5  |.  8BEC          mov ebp,esp
004323D7      81C4 04F0FFFF add esp,-0FFC
004323DD  |.  50            push eax
004323DE  |.  81C4 30FDFFFF add esp,-2D0
004323E4  |.  53            push ebx
004323E5  |.  56            push esi
004323E6  |.  57            push edi
004323E7  |.  8B5D 10       mov ebx,[ebp+10]                         ;  set ebx=wParam
004323EA  |.  8B45 0C       mov eax,[ebp+C]                          ;  set eax=message
004323ED  |.  3D 11010000   cmp eax,111                              ;  比较message是否为WM_COMMAND; Switch (cases 1..478)
004323F2  |.  7F 61         jg short 00432455                        ;  XmPushD.00432455
004323F4  |.  0F84 1E140000 je 00433818                              ;  条件成立跳转实现

00433818  |> \8BCB          mov ecx,ebx                              ;  Case 111 (WM_COMMAND) of switch 004323ED
0043381A  |.  C1E9 10       shr ecx,10
0043381D  |.  66:85C9       test cx,cx
00433820  |.  0F85 EC090000 jnz 00434212                             ;  条件不成立,跳转未实现
00433826  |.  8BC3          mov eax,ebx
00433828  |.  66:25 FFFF    and ax,0FFFF
0043382C  |.  0FB7D0        movzx edx,ax                             ;  下面就开始比较菜单的编号了
0043382F  |.  81FA 9F080000 cmp edx,89F                              ;  Switch (cases 7D1..9C8)
00433835  |.  0F8F 0A010000 jg 00433945                              ;  因为点击的calc,十六进制为9C6,此时条件成立跳转

00433945  |> \81FA AD080000 cmp edx,8AD
0043394B  |.  7F 50         jg short 0043399D                        ;  大于,再跳转

0043399D  |> \81FA 63090000 cmp edx,963
004339A3  |.  7F 4B         jg short 004339F0                        ;  大于跳转

004339F0  |> \81FA C6090000 cmp edx,9C6                              ;  calc-2502,也就是9C6
004339F6  |.  7F 27         jg short 00433A1F                        ;  不大于,条件不成立,跳转未实现
004339F8  |.  0F84 4A070000 je 00434148                              ;  等于,成功跳转

到这里也就成功找到了calc被单击后的处理事件,
00434148  |> \6A 00         push 0                                   ; /Data = NULL; Case 9C6 of switch 0043382F
0043414A  |.  6A 03         push 3                                   ; |Command = HELP_INDEX
0043414C  |.  68 3D5A4B00   push 4B5A3D                              ; |XmPushD.hlp
00434151  |.  8B0D 7C3B4D00 mov ecx,[4D3B7C]                         ; |
00434157  |.  51            push ecx                                 ; |hWnd => 00050376 ('XmPushD',class='fengyue')
00434158  |.  E8 9DB40700   call 004AF5FA                            ; \WinHelpA
0043415D  |.  E9 B0000000   jmp 00434212                             ;  XmPushD.00434212
本来是准备使用OD导入函数里面的"ShellExecuteA"来运行calc的,
只不过这段区域好小,"ShellExecuteA"好像有6个参数,
而且还需要构建一个"calc"的文本字串,这段空间完全不够用,
只能想办法令找一段其它空间,先记下来calc处理事件的首地址00434148,
通过PEiD打开目标OD也就是"XmPushD.exe",然后点击EP段旁边的箭头按钮,
在".text"上点击鼠标右键单击"搜索全0处",找到一处可以写入代码的区域,


然后发现004AF642之后的区域都是空白的,准备在这个地方开始写入运行calc的代码,
为了确保安全先在004AF642这里下一个内存访问断点看会不会被断下,
F9后发觉似乎没有什么影响,- -,也不知道这样是否真的能够确保安全,
没办法,就算掩耳盗铃自欺欺人好了,
先在004AF642-004AF647的区域构建一个"calc"的字符串,
然后构建出这样的代码,
004AF642   .  63 61 6C 63 0>ascii "calc",0
004AF647      6A 00         push 0
004AF649      68 A4914B00   push 4B91A4
004AF64E      6A 00         push 0
004AF650      68 42F64A00   push 4AF642                              ;  ASCII "calc"
004AF655      68 7A914B00   push 4B917A                              ;  ASCII "open"
004AF65A      8B45 08       mov eax,[ebp+8]                          ;  [ebp+8]存放的是OD窗口的句柄
004AF65D      50            push eax
004AF65E      E8 DFFCFFFF   call 004AF342                            ;  <jmp.&SHELL32.ShellExecuteA>
004AF663    ^ E9 E54AF8FF   jmp 0043414D                             ;  XmPushD.0043414D

将前面calc被单击后处理事件里的代码起始地址00434148改为,
00434148     /E9 FAB40700            jmp 004AF647                             ;  XmPushD.004AF647
0043414D     |90                     nop
0043414E     |90                     nop
0043414F     |90                     nop
00434150     |90                     nop
00434151     |90                     nop                                      
00434152     |90                     nop
00434153     |90                     nop
00434154     |90                     nop
00434155     |90                     nop
00434156     |90                     nop
00434157     |90                     nop                                      
00434158     |90                     nop                                      
00434159     |90                     nop
0043415A     |90                     nop
0043415B     |90                     nop
0043415C     |90                     nop

这样子然后保存所有修改至文件,
接着果然单击菜单后能够运行计算器了,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-9-19 20:48
0
[未收录]OllyDbg小改01
昨天发现OD在释放loaddll.exe的时候并不是规规矩矩的写出,
好像还做了什么解压缩的工作类似的,
总之资源里的RES_LOADDLL和实际loaddll.exe不一样,
里面那边好多好多判断,看不懂了,
今天看能不能直接写出,
同样删除目的OD目录里的loaddll.exe,在File菜单历史里点击历史dll,
设置消息断点WM_COMMAND,
会先判断dll是否存在,然后判断当前目录是否存在loaddll.exe,
如果不存在则从资源里提取RES_LOADDLL,
直接此处设置断点,
0040F48B  |.  52            push edx                                 ; /edx=当前OD路径+"loaddll.exe"
0040F48C  |.  E8 B1FB0900   call 004AF042                            ; \GetFileAttributesA
0040F491  |.  83F8 FF       cmp eax,-1
0040F494  |.  74 07         je short 0040F49D                        ;  因为把"loaddll.exe"手动删掉了,此时条件成立
0040F496  |.  33C0          xor eax,eax
0040F498  |.  E9 9E000000   jmp 0040F53B                             ;  XmPushD.0040F53B
0040F49D  |>  68 91134B00   push 4B1391                              ; /KNOWNRESTYPE
0040F4A2  |.  68 81174B00   push 4B1781                              ; |RES_LOADDLL
0040F4A7  |.  6A 00         push 0                                   ; |hModule = NULL
0040F4A9  |.  E8 52FB0900   call 004AF000                            ; \FindResourceA
0040F4AE  |.  85C0          test eax,eax                             ;  eax=hResInfo
0040F4B0  |.  75 08         jnz short 0040F4BA                       ;  XmPushD.0040F4BA
0040F4B2  |.  83C8 FF       or eax,FFFFFFFF
0040F4B5  |.  E9 81000000   jmp 0040F53B                             ;  XmPushD.0040F53B
0040F4BA  |>  50            push eax                                 ; /hResource
0040F4BB  |.  6A 00         push 0                                   ; |hModule = NULL
0040F4BD  |.  E8 7CFC0900   call 004AF13E                            ; \LoadResource
0040F4C2  |.  85C0          test eax,eax                             ;  eax=hResData
0040F4C4  |.  75 05         jnz short 0040F4CB                       ;  XmPushD.0040F4CB
0040F4C6  |.  83C8 FF       or eax,FFFFFFFF
0040F4C9  |.  EB 70         jmp short 0040F53B                       ;  XmPushD.0040F53B
0040F4CB  |>  50            push eax                                 ; /hResource
0040F4CC  |.  E8 73FC0900   call 004AF144                            ; \LockResource
前面的准备工作已经做好,
试试在下面进行CreateFile和WriteFile,
直接写入这些代码,
0040F4DA  |> \6A 00         push 0                                   ; /hTemplateFile = NULL
0040F4DC  |.  68 80000000   push 80                                  ; |Attributes = NORMAL
0040F4E1  |.  6A 02         push 2                                   ; |Mode = CREATE_ALWAYS
0040F4E3  |.  6A 00         push 0                                   ; |pSecurity = NULL
0040F4E5  |.  6A 00         push 0                                   ; |ShareMode = 0
0040F4E7  |.  68 00000040   push 40000000                            ; |Access = GENERIC_WRITE
0040F4EC  |.  68 F8F44000   push 40F4F8                              ; |FileName = "XmPushL.exe"
0040F4F1  |.  E8 D4FA0900   call 004AEFCA                            ; \CreateFileA
0040F4F6  |.  EB 0E         jmp short 0040F506                       ;  XmPush2.0040F506
0040F4F8  |   58            db 58                                    ;  CHAR 'X'
0040F4F9  |   6D            db 6D                                    ;  CHAR 'm'
0040F4FA  |   50            db 50                                    ;  CHAR 'P'
0040F4FB  |   75            db 75                                    ;  CHAR 'u'
0040F4FC  |   73            db 73                                    ;  CHAR 's'
0040F4FD  |   68            db 68                                    ;  CHAR 'h'
0040F4FE  |   4C            db 4C                                    ;  CHAR 'L'
0040F4FF  |   2E            db 2E                                    ;  CHAR '.'
0040F500  |   65            db 65                                    ;  CHAR 'e'
0040F501  |   78            db 78                                    ;  CHAR 'x'
0040F502  |.  65004B00      dd XmPush2.004B0065                      ;  填充出一个字符串"XmPushL.exe"

接下来保存所有修改,OD重新载入,在0040F4F1处摁下F2断点,
可以发现随着CreateFileA的执行会在OD目录生成出"XmPushL.exe",

但只是0个字节,因为资源里的RES_LOADDLL还未写入,
loaddll.exe的大小为34816,


接下来再重新编码直接写出RES_LOADDLL资源
0040F4D1   .  85C0          test eax,eax
0040F4D3      75 48         jnz short 0040F51D                       ;  XmPush3.0040F51D
0040F4D5   .  83C8 FF       or eax,FFFFFFFF
0040F4D8   .  EB 61         jmp short 0040F53B                       ;  XmPush3.0040F53B
0040F4DA   >  6A 00         push 0                                   ; /hTemplateFile = NULL
0040F4DC   .  68 80000000   push 80                                  ; |Attributes = NORMAL
0040F4E1   .  6A 02         push 2                                   ; |Mode = CREATE_ALWAYS
0040F4E3   .  6A 00         push 0                                   ; |pSecurity = NULL
0040F4E5      6A 03         push 3
0040F4E7      68 000000C0   push C0000000
0040F4EC   .  68 F8F44000   push 40F4F8                              ; |FileName = "XmPushL.exe"
0040F4F1   .  E8 D4FA0900   call 004AEFCA                            ; \CreateFileA
0040F4F6   .  EB 0E         jmp short 0040F506                       ;  跳过下面的字符串,因为下面的不是指令不可执行
0040F4F8      58            db 58                                    ;  CHAR 'X'
0040F4F9      6D            db 6D                                    ;  CHAR 'm'
0040F4FA      50            db 50                                    ;  CHAR 'P'
0040F4FB      75            db 75                                    ;  CHAR 'u'
0040F4FC      73            db 73                                    ;  CHAR 's'
0040F4FD      68            db 68                                    ;  CHAR 'h'
0040F4FE      4C            db 4C                                    ;  CHAR 'L'
0040F4FF      2E            db 2E                                    ;  CHAR '.'
0040F500      65            db 65                                    ;  CHAR 'e'
0040F501      78            db 78                                    ;  CHAR 'x'
0040F502   .  65004B00      dd XmPush3.004B0065                      ;  拼凑出"XmPushL.exe"这个字符串
0040F506      6A 00         push 0
0040F508      68 21F54000   push 40F521
0040F50D      68 00880000   push 8800
0040F512      53            push ebx
0040F513      50            push eax
0040F514      8BD8          mov ebx,eax                              ;  将文件句柄备份到ebx后面释放
0040F516      E8 FBFC0900   call 004AF216                            ;  <jmp.&KERNEL32.WriteFile>
0040F51B      EB 0A         jmp short 0040F527                       ;  XmPush3.0040F527
0040F51D      8BD8          mov ebx,eax                              ;  将资源里的RES_LOADDLL保存在ebx
0040F51F    ^ EB B9         jmp short 0040F4DA                       ;  转到上面的CreateFileA
0040F521      90            nop
0040F522      90            nop
0040F523      90            nop
0040F524      90            nop
0040F525      90            nop
0040F526      90            nop
0040F527      53            push ebx                                 ;  完成RES_LOADDLL写出
0040F528      E8 8BFA0900   call 004AEFB8                            ;  <jmp.&KERNEL32.CloseHandle>
0040F52D      90            nop
0040F52E      90            nop
0040F52F      90            nop
0040F530      90            nop
0040F531      90            nop
0040F532      90            nop
0040F533      90            nop
0040F534      90            nop
0040F535      90            nop
0040F536      90            nop
0040F537      90            nop
0040F538      90            nop
0040F539      33C0          xor eax,eax
0040F53B   >  81C4 08420000 add esp,4208
0040F541   .  5E            pop esi
0040F542   .  5B            pop ebx
0040F543   .  C3            ret
因为WriteFile的参数需要,所以将40F521-40F526作为一段不放代码的空间,
当WriteFile执行完毕后直接跳过nop至0040F527,
接着保存所有修改点击OD里File菜单的历史dll,
系统提示错误,


可能是因为代码区是不可写所致,因为WriteFile会在0040F51F这个地址写入6个字节的值,
打开"LordPE.exe",PE编辑器,选择目标OD,区段".text"勾选可写入并保存,


然后再次点击OD菜单File的历史dll,OD目录成功写出34816字节的"XmPushL.exe",


现在OD已经可以实现无论当前目录是否存在"loaddll.exe"都能够载入dll文件了,

如果不存在先写出RES_LOADDLL生成"loaddll.exe"再载入,
因为之前将OD拖入了"HEdit.exe"把"loaddll.exe"修改为了"XmPushL.exe",
所以我的这个OD,即"XmPushD.exe"载入dll的时候会将RES_LOADDLL写出为"XmPushL.exe",
至此终于将OD内资源RES_LOADDLL替换完毕,
最后临睡觉之前来张OD全家福,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-8-21 19:10
0
[求助]我们做很多事情都是使用api,但如果api不能用过了,我们怎么办?
api没了…每个平台都有各自的编程接口嘛,比如windows的api没了,那一定是microsoft不想做了,仅此而已,
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-7-28 18:42
0
[求助]日本游戏破译成中文
木有发现日本游戏,失望之感如潮水般涌来,良久未能平息...
雪    币: 9
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xmpush 1 2011-7-3 15:01
0
[讨论]
原来如此,受教了,
精华数
RANk
雪币
0
活跃值
关注数
粉丝数
0
课程经验
0
学习收益
0
学习时长
基本信息
活跃值  活跃值:活跃值
  在线值:
  浏览人数:0
  最近活跃:0
  注册时间:
勋章
能力值

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册